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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简明Python教程学习笔记_3_模块

模块 如果你想要在其他程序中重用很多函数,那么你该如何编写程序呢?你可能已经猜到了,答案是使用模块。模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。 pyt…

年轻的程序员该如何规划自己的未来

下面是网友良少给我的回信,觉得其中一些内容具有警世作用,征得良少本人同意后,特公开其回信-------------------------------------------------------------------------------------------------------------------------- 孝祥:您好!非常感谢您的邀请…

C++学习之路 | PTA乙级—— 1006 换个格式输出整数 (15分)(精简)

1006 换个格式输出整数 (15分) 让我们用字母 B 来表示“百”、字母 S 表示“十”&#xff0c;用 12…n 来表示不为零的个位数字 n&#xff08;<10&#xff09;&#xff0c;换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234&#xff0c;因为它有 …

python: 使用socket实现局域网不同主机通信。解决ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

目录1 socket的使用1.1 TCP方法1.2 UDP方法2 局域网内连接2.1总结1 socket的使用 1.1 TCP方法 在socket中使用socket.socket建立会话&#xff0c;如果是服务器&#xff0c;需要绑定服务器地址和端口号&#xff0c;然后进行循环监听&#xff0c;当有客户端连接时再接收数据。 …

Replace Parameter with Explicit Methods(以明确函数取代参数)

函数的行为&#xff0c;完全取决于参数值 public void setValue(final String name, final int value) {if ("height".equals(name)) {this.height value;return;}if ("width".equals(name)) {this.width value;return;}Assert.shouldNeverReachHere();…

德勤:2018年科技、传媒和电信行业未来趋势预测

来源&#xff1a;亿欧近日&#xff0c;德勤发布了《2018科技、传媒和电信行业预测》报告&#xff0c;对世界与中国的科技、传媒和电信行业在未来1-5年的趋势进行了预测。该报告通过与世界各国行业主管和评论家的数百场访谈及对世界各地数万名消费者进行的调查&#xff0c;分析了…

简明Python教程学习笔记_4_数据结构

在Python中有三种内建的数据结构——列表、元组和字典。 列表 list是处理一组有序项目的数据结构&#xff0c;即你可以在一个列表中存储一个 序列 的项目。假想你有一个购物列表&#xff0c;上面记载着你要买的东西&#xff0c;你就容易理解列表了。只不过在你的购物表上&…

動態修改SiteMapPath路徑

http://www.purecs.net/Threads/t376.aspx在網頁上放置一個SiteMapPath可以提供使用者一個清楚的瀏覽路標指示&#xff0c;如果你的SiteMap是靜態不會變動的倒是很簡單&#xff0c;只要編寫好一個XML檔放上去&#xff0c;其它的事就可以不用管了&#xff0c;但是在動態網頁中Si…

C++学习之路 | PTA乙级—— 1007 素数对猜想 (20分)(精简)

1007 素数对猜想 (20分) 让我们定义d ​n ​​ 为&#xff1a;d ​n ​​ p ​n1 ​​ −p ​n ​​ &#xff0c;其中p ​i ​​ 是第i个素数。显然有d ​1 ​​ 1&#xff0c;且对于n>1有d ​n ​​ 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给…

python: SHA256算法的实现和消息的哈希散列值计算

目录1 SHA2562 实现原理2.1 消息预处理2.2 使用的常量和循环移位函数2.3 主循环3 结果4 对中文编码1 SHA256 SHA256是SHA-2下的一个子算法&#xff0c;与之类似的还有SHA224、SHA384、SHA512&#xff0c;算法原理基本一致。 哈希算法通过对消息进行计算&#xff0c;生成一定长…

财报上的云计算战场: 巨头们垄断加剧

来源&#xff1a; 第一财经一周之内&#xff0c;四大云业务巨头公司前后脚发布财报。亚马逊的云业务&#xff08;AWS&#xff09;依然跑在了最前面&#xff0c;以174亿美元排在首位。微软、谷歌、阿里巴巴也没有放慢步伐。阿里云去年累计的营收超过了百亿&#xff1b;微软的Azu…

Preserve Whole Object(保持对象完整)

从某个对象中取出若干值&#xff0c;将它们作为某一次函数调用的参数 int low daysTempRange().getLow(); int height daysTempRange().getHigh(); withinPlan plan.withinRange(low, high); 重构&#xff1a;改为传递整个对象 withinPlan plan.withinRange(daysTempRan…

简明Python教程学习笔记_5_解决问题

问题 我提出的问题是&#xff1a; 我想要一个可以为我的所有重要文件创建备份的程序。 尽管这是一个简单的问题&#xff0c;但是问题本身并没有给我们足够的信息来解决它。进一步的分析是必需的。例如&#xff0c;我们如何确定该备份哪些文件&#xff1f;备份保存在哪里&#…

【开始研究Community Server,转贴一点东西】Community Server资料收集

Community Server学习资料 uGoer 系列文章 Community Server专题一&#xff1a;概述Community ServerCommunity Server专题二&#xff1a;体系结构Community Server专题&#xff1a;附件(DOC&PPT)--2005年10月10日更新Community Server专题三&#xff1a;HttpModuleCommuni…

python实现RSA算法,对数据进行加密认证

RSA算法RSA一、数学原理二、实现代码1 生成素数2 生成秘钥3 对数据进行加密、解密总结RSA RSA是一种非对称加密体制&#xff0c;由公钥和私钥组成&#xff0c;数学原理是实数域的模余法。在使用私钥对数据进行加密后&#xff0c;可用公钥对数据进行解密。 在RSA算法中&#xf…

C++学习之路 | PTA乙级—— 1008 数组元素循环右移问题 (20分)(精简)

1008 数组元素循环右移问题 (20分) 一个数组A中存有N&#xff08;>0&#xff09;个整数&#xff0c;在不允许使用另外数组的前提下&#xff0c;将每个整数循环向右移M&#xff08;≥0&#xff09;个位置&#xff0c;即将A中的数据由&#xff08;A ​0 ​​ A ​1 ​​ ⋯A …

他研究了5000家AI公司,说人工智能应用该这么做!

来源&#xff1a;公众号InfoQ编辑&#xff1a;陈思 Eva&#xff1b;视频剪辑&#xff1a;汪春良 概要&#xff1a;本文作者 Henry Shi是美国人工智能的博士&#xff0c;连续创业者&#xff0c;专注于 AI 领域的早期投资&#xff08;AI List Capital管理合伙人&#xff09;。无…

Replace Parameter with Methods(以函数取代参数)

对象调用某个函数&#xff0c;并将其结果传递给另一个函数 int basePrice quantity * itemPrice; double discountLevel getDiscountLevel(); double finalPrice discountPrice(basePrice, discountLevel); 重构&#xff1a;让参数接受者移除该项参数&#xff0c;并直接调…

简明Python教程学习笔记_6_面向对象编程

面向对象编程&#xff1a;https://www.liaoxuefeng.com/wiki/897692888725344/923030496738368面向对象高级编程&#xff1a;https://www.liaoxuefeng.com/wiki/897692888725344/9230305380126401、类、对象 类 和 对象 是面向对象编程的两个主要方面。 类 是创建一个 新类型&a…

C++学习之路 | PTA乙级—— 1009 说反话 (20分)(精简)

1009 说反话 (20分) 给定一句英语&#xff0c;要求你编写程序&#xff0c;将句中所有单词的顺序颠倒输出。 输入格式&#xff1a; 测试输入包含一个测试用例&#xff0c;在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成&#xff0c;其中单词是由英文字…