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和端口,其它参数按需添加,所有参数及其说明如下图所示:

bash 复制代码
ip:port,param1=value1,param2=value2,param3=value3...


  CSRedisClient中提供的函数与redis官网文档中各数据类型的名称对应(与NRedisStack不同,后者不同类型的函数前都带有类型名称),绝大部分命令都有对应的函数,不过没有找到名为decr的函数,暂不清楚没有还是名称变了。

  测试代码比较简单,与上一篇文章中的代码类似,差别仅是调用函数的名称不同,主要代码如下:

csharp 复制代码
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

相关推荐
明耀9 分钟前
WPF C# 用WebView加载H5页面(uniapp项目,vue项目)
uni-app·c#·wpf
我不是程序猿儿4 小时前
【C#】 lock 关键字
java·开发语言·c#
动感光博8 小时前
Unity序列化字段、单例模式(Singleton Pattern)
unity·单例模式·c#
黑洞视界9 小时前
NCC Mocha v0.2.0 发布, 新增对 Metrics 的支持
c#·.net·可观测性·observability
FAREWELL0007510 小时前
Unity基础学习(十五)核心系统——音效系统
学习·unity·c#·游戏引擎
zimoyin11 小时前
Java 快速转 C# 教程
java·开发语言·c#
向宇it11 小时前
【unity游戏开发——编辑器扩展】使用MenuItem自定义菜单栏拓展
开发语言·ui·unity·c#·编辑器·游戏引擎
动感光博12 小时前
Unity碰撞检测(射线投射、胶囊体投射)、交互(图层、掩码)
unity·c#·游戏引擎·游戏程序·动画
LDM>W<12 小时前
黑马点评-用户登录
java·redis
动感光博14 小时前
Unity(URP渲染管线)的后处理、动画制作、虚拟相机(Virtual Camera)
开发语言·人工智能·计算机视觉·unity·c#·游戏引擎