当前位置: 首页 > news >正文

redis基本用法学习(C#调用CSRedisCore操作redis)

  除了NRedisStack包,csredis也是常用的redis操作模块(从EasyCaching提供的常用redis操作包来看,CSRedis、freeredis、StackExchange.Redis应该都属于常用redis操作模块),本文学习使用C#调用CSRedis包操作redis的基本方式。
在这里插入图片描述
  CSRedis中的CSRedisClient和RedisHelper类的函数名与以redis-cli形式操作redis的所有命令相同,便于用户查找和调用所需函数。同时CSRedis支持redis集群、哨兵模式、主从模式等。CSRedis模块主要包括两个包,CSRedisCore包中包括CSRedisClient、RedisHelper类等基本操作类,Caching.CSRedis中为分布式缓存 CSRedisCore 实现 Microsoft.Extensions.Caching,本文中主要使用CSRedisCore。
在这里插入图片描述
  新建Winform项目,在Nuget包管理器中搜索并安装CSRedisCore包,如下图所示:
在这里插入图片描述
  使用CSRedisClient类连接redis服务,其构造函数如下所示:
在这里插入图片描述
  本文中使用最简单的输入连接字符串的构造函数,其连接字符串形式如下所示,除了ip和端口,其它参数按需添加,所有参数及其说明如下图所示:

ip:port,param1=value1,param2=value2,param3=value3...

在这里插入图片描述
  CSRedisClient中提供的函数与redis官网文档中各数据类型的名称对应(与NRedisStack不同,后者不同类型的函数前都带有类型名称),绝大部分命令都有对应的函数,不过没有找到名为decr的函数,暂不清楚没有还是名称变了。
在这里插入图片描述
  测试代码比较简单,与上一篇文章中的代码类似,差别仅是调用函数的名称不同,主要代码如下:

private void btnSet_Click(object sender, EventArgs e)
{if (string.IsNullOrEmpty(txtSeconds.Text)){m_csredis.Set(txtKey.Text, txtValue.Text);}else{m_csredis.Set(txtKey.Text, txtValue.Text, new TimeSpan(0, 0, Convert.ToInt32(txtSeconds.Text)));}
}private void btnGet_Click(object sender, EventArgs e)
{if (!m_csredis.Exists(txtKey1.Text)){MessageBox.Show("不存在指定key:" + txtKey1.Text);return;}MessageBox.Show(m_csredis.Get(txtKey1.Text));
}private void btnCheck_Click(object sender, EventArgs e)
{lstResult.Items.Clear();string[] result = m_csredis.Keys(txtPattern.Text);if (result != null){txtResult.Lines = result;foreach (string s in result){ListViewItem lvi = new ListViewItem(s);lvi.SubItems.Add(m_csredis.Get(s));lstResult.Items.Add(lvi);}}
}

  最后是程序运行效果,如下所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考文献:
[1]https://github.com/dotnetcore/EasyCaching
[2]https://github.com/2881099/csredis

相关文章:

  • 动态代理jdk的Proxy与Spring的CGlib
  • Python之Django项目的功能配置
  • 音视频的编码格式与封装格式
  • 图像识别SLIC、Haralick texture features(自备)
  • 3.1 C语言之控制流语句
  • 【四】记一次关于架构设计从0到1的讨论
  • prometheus二进制安装
  • 【Flink-Kafka-To-ClickHouse】使用 Flink 实现 Kafka 数据写入 ClickHouse
  • SSTI模板注入基础(Flask+Jinja2)
  • 前端验收测试驱动开发
  • 高并发情况下,数据库与缓存数据不一致问题
  • WorkPlus超级APP助力企业节省IT人力成本,实现快速移动化
  • ARM学习(24)Can的高阶认识和错误处理
  • WPScan安全建议和防护
  • ArrayList源码学习笔记(3)
  • Apache Zeppelin在Apache Trafodion上的可视化
  • CSS相对定位
  • EOS是什么
  • Javascript 原型链
  • JavaScript新鲜事·第5期
  • JS题目及答案整理
  • Linux各目录及每个目录的详细介绍
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • vue-cli在webpack的配置文件探究
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 聊聊redis的数据结构的应用
  • 免费小说阅读小程序
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 优秀架构师必须掌握的架构思维
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转载)PyTorch代码规范最佳实践和样式指南
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .Net IOC框架入门之一 Unity
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .pop ----remove 删除
  • @Bean注解详解
  • [20171113]修改表结构删除列相关问题4.txt
  • [ActionScript][AS3]小小笔记
  • [Android实例] 保持屏幕长亮的两种方法 [转]
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)
  • [CTF]php is_numeric绕过
  • [IE技巧] IE 中打开Office文件的设置
  • [ISCTF 2023]——Web、Misc较全详细Writeup、Re、Crypto部分Writeup