C# net使用redis

作者: 诸葛_小亮 | 来源:发表于2016-12-03 09:01 被阅读713次

redis 安装

Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案。Redis官方网网站是:http://www.redis.io/
windows下使用方式:http://blog.csdn.net/renfufei/article/details/38474435
安装完毕后,用管理员运行命令窗口,切换到 redis 所在位置,执行命令

图1 启动服务

如果显示如下图所示内容,则表示 redis 服务启动成功

图2 启动服务成功

redis 默认端口为 6379


简单测试 key value

不要关闭服务窗口,在用管理员启动另一个命令窗口并切换到redis工作目录
1.执行命令如下图所示

图3 打开redis客户端

2.执行命令 set age 21
返回ok,表示执行成功

图4 set 命令

3.执行 get age,返回数据 21,则表示我们的redis是正常工作的

图5 get命令

队列测试

redis 支持消息队列,具体测试如下
运行 redis 服务,如果已经运行,则无需重复运行,在用管理员模式分别打开两个命令窗口,并切换到 redis工作目录,执行客户端模式命令,如下图

图6 两个客户端

我们在左侧的命令窗口建立监听模式,可以理解为 消息队列的消费者,即消息处理者,右侧窗口为发送消息,可以理解为 创建者,即消息源。
在左侧和右侧执行的命令如下

图7 消息队列测试结果

SUBSCRIBE 命令是建立监听,参数是通道名称
PUBLISH 命令是给指定通道发送消息


C# 测试案例

在vs创建命令行程序,并引入nuget包: StackExchange.Redis

图8 redis包引入结果

源代码如下:


class Program
    {

        static ConnectionMultiplexer redisClient = ConnectionMultiplexer.Connect("localhost");
        static void Main(string[] args)
        {
            IDatabase db = redisClient.GetDatabase();
            // 测试 key value
            string value = "abcdefg";
            db.StringSet("mykey", value);
             value = db.StringGet("mykey");
            Console.WriteLine(value);
            // 测试消息队列
            ISubscriber sub = redisClient.GetSubscriber();
            sub.Subscribe("messages", (channel, message) => {
                Console.WriteLine((string)message);
            });
            Thread.Sleep(1000);
            sub.Publish("messages", "hello");

            Thread.Sleep(1000);
            sub.Publish("redisMessages", "This message from C# program");

            Console.ReadKey();
        }
    }

运行结果如下所示

图9 C#程序运行结果

通过运行结果,我们可以看到,C#代码正确的取到了key value的值
有看到了消息队列的使用方式,并且在上一个步骤中的左侧窗口,看到了C# 发送的到消息队列的额消息"This message from C# program"

接下来,我们在右侧窗口,向messages通道发送消息,看看我们的C#程序,是否可以读取 messages通道的消息

图10 消息列表测试结果

实验证明,我们的C# 程序通过消息队列 成功的读取到了来自 redis 客户端的消息


总结

  1. redis的安装和简单的命令测试
  2. 使用 .net 程序操作 redis
源代码:https://git.oschina.net/zhaord/redisdemo

QQ:1260825783

若是需要转载,请备注原地址:http://www.jianshu.com/p/0dd7d722c410

相关文章

网友评论

本文标题:C# net使用redis

本文链接:https://www.haomeiwen.com/subject/hptcmttx.html