当前位置:   article > 正文

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

c# redis

  redis官网文档中推荐C#中使用NRedisStack包连接并操作redis,本文学习C#调用NRedisStack操作redis的基本方式。
  新建Winform项目,在Nuget包管理器中搜索并安装NRedisStack包,如下图所示:

在这里插入图片描述
  主要调用StackExchange.Redis命名空间下ConnectionMultiplexer类的Connect函数连接redis,默认情况下只需指定redis所在服务器地址即可,端口默认为6379,同时没有连接密码,调用示例如下所示:

ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");
IDatabase db = redis.GetDatabase();
  • 1
  • 2

  redis安装目录下的redis.windows-service.conf中可以设置redis服务监听端口和密码,如下图所示,修改内容后,需要在Windows服务中重启redis服务后生效。
在这里插入图片描述在这里插入图片描述
  如果带端口和密码形式连接,需要在Connect函数中传入ConfigurationOptions对象实例,并在实例中设置密码、ip和端口,示例代码如下所示:

ConfigurationOptions options = new ConfigurationOptions();
options.Password = “XXXXXXX”;
options.EndPoints.Add(“XXXXXXX”, XXXX);
redis = ConnectionMultiplexer.Connect(options);
db = redis.GetDatabase();
  • 1
  • 2
  • 3
  • 4
  • 5

  连接成功后,可以调用redis.GetStatus函数获取连接状态,如下图所示:
在这里插入图片描述

  redis.GetDatabase函数返回IDatabase接口对象实例,用于与redis服务器交互,该接口中定义了redis中各种数据类型相关的命令操作函数,函数名称都是以数据类型+操作命令的形式定义,下图为字符串类型键值对的操作函数:
在这里插入图片描述
  编写简单的测试程序,连接redis服务器设置或获取键值对,同时打开命令行连接redis进行交互,C#中的代码如下所示:

private void btnSet_Click(object sender, EventArgs e)
{
    if(string.IsNullOrEmpty(txtSeconds.Text)) 
    {
        m_db.StringSet(txtKey.Text, txtValue.Text);
    }
    else
    {
        m_db.StringSet(txtKey.Text, txtValue.Text,new TimeSpan(0,0,Convert.ToInt32(txtSeconds.Text)));
    }            
}

private void btnGet_Click(object sender, EventArgs e)
{
    if(!m_db.KeyExists(txtKey1.Text))
    {
        MessageBox.Show("不存在指定key:" + txtKey1.Text);

        return;
    }

    MessageBox.Show(m_db.StringGet(txtKey1.Text));
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

  如下截图所示,通过控制台查看redis保存的键值对,然后在Winform程序中获取指定的键的值,两边获取到的内容都是相同的:
在这里插入图片描述

  在Winform程序中设置新的键值对,同时设置过期时间,然后在控制台中查看并获取新增键的值及过期时间。等键值对过期后,在Winform中再获取键值时,失效的键值已经获取不到了。
在这里插入图片描述

参考文献:
[1]https://redis.io/docs/connect/clients/dotnet/
[2]https://github.com/redis/NRedisStack

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/748209
推荐阅读
相关标签
  

闽ICP备14008679号