StackExchange.Redis的基本使用

StackExchange.Redis是一款免费的操作Redis的客户端工具,我们使用这个库来简单的学习下Redis的一些基本操作

Redis默认安装好后的端口是6379

密码可以自己设置,使用命令修改

config get requirepass //获取当前密码
config set requirepass "yourpassword"//设置当前密码

代码里需引用StackExchange.Redis

使用ConnectionMultiplexer来进行连接Redis,参数为连接的地址,端口,密码

ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost:6379,password=123456")

连接好后就可以获取IDatabase来进行操作

IDatabase db = redis.GetDatabase();

下面就可以操作了,StackExchange.Redis其实都提供了异步的方法,我们这里就讲下同步方法的例子其实差不多的,就是异步方法时Async结尾的.

我们先来讲下String类型的基本操作吧

using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost:6379,password=123456"))
            {
                IDatabase db = redis.GetDatabase();
                //设置string类型的key的值
                db.StringSet("Name", "abc");
                //设置string类型的key的值 带过期时间
                db.StringSet("Id", "123",TimeSpan.FromSeconds(3));
                //以KeyValuePair数组形式批量写入
                var keyvp1 = new KeyValuePair<RedisKey, RedisValue>("name1", "Jhon");
                var keyvp2 = new KeyValuePair<RedisKey, RedisValue>("name2", "Lilei");
                var keyvp3 = new KeyValuePair<RedisKey, RedisValue>("name3", "Jim");
                KeyValuePair<RedisKey, RedisValue>[] values = { keyvp1, keyvp2, keyvp3 };
                db.StringSet(values);

                //--------- 读取方法操作-------------------------
                //读取单个key的值
                string Name = db.StringGet("Name");
                string Id = db.StringGet("Id");
                //批量读取key的值
                RedisKey[] rkarray = { "name1", "name2", "name3" };
                RedisValue[] rvarray = db.StringGet(rkarray);
                foreach (var item in rvarray)
                {
                    MessageBox.Show(item);
                }
            }

List的基本操作

对于List的操作,Redis比较特殊,Redis的List是双向队列

数据可以从队首和队尾压栈和出栈 ,压栈ListLeftPush,ListRightPush,出栈ListLeftPop,ListRightPop

获取此List中所有数据ListRange,获取List中的个数ListLength

List也支持批量插入

                //对list类型的操作
                if (!this.checkBox1.Checked)
                {
                    db.ListLeftPush("id", textBox1.Text);
                }
                else
                {
                    db.ListRightPush("id", textBox1.Text);
                }

                RedisValue[] arr = { "a", "b", "c" };//批量插入
                db.ListRightPush("id", arr);


                if (!this.checkBox1.Checked)
                {
                    db.ListLeftPop("id");
                }
                else
                {
                    db.ListRightPop("id");
                }

可以利用Redis的List这一特性作为消息队列来试用

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值