更新时间:2024-10-24 GMT+08:00
分享

StackExchange.Redis客户端连接Redis(C#)

本章节介绍使用StackExchange.Redis客户端连接Redis实例的方法。更多的客户端的使用方法请参考Redis客户端

以下操作以通过弹性云服务器上的客户端连接Redis实例为例进行说明。

使用StackExchange客户端连接Proxy集群实例时,目前无法使用Proxy集群的多DB功能。

前提条件

  • 已成功创建Redis实例,且状态为“运行中”。创建Redis实例的操作请参考购买Redis实例
  • 已创建弹性云服务器,创建弹性云服务器的方法,请参见购买弹性云服务器
  • 如果弹性云服务器为Linux系统,该弹性云服务器必须已经安装gcc编译环境。
  • 连接实例前确保客户端与Redis实例之间网络互通,具体请参考连接Redis网络要求

StackExchange.Redis客户端连接Redis

  1. 查看并获取待连接Redis实例的IP地址/域名和端口。

    具体步骤请参见查看和修改DCS实例基本信息

  2. 登录弹性云服务器。

    弹性云服务器操作系统,这里以Window为例。

  3. 在弹性云服务器安装VS 2017社区版。
  4. 启动VS 2017,新建一个工程。

    工程名自定义,这里设置为“redisdemo”。

  5. 使用VS的nuget管理工具安装C# Redis客户端StackExchange.Redis。

    按照如图1操作,进入程序包管理器控制台,在nuget控制台输入:Install-Package StackExchange.Redis -Version 2.2.79。(版本号可以不指定)

    图1 进入程序包管理器控制台

  6. 编写如下代码,并使用String的set和get测试连接。

    using System;
    using StackExchange.Redis;
    
    namespace redisdemo
    {
        class Program
        {
            // redis config
            private static ConfigurationOptions connDCS = ConfigurationOptions.Parse("{instance_ip_address}:{port},password=********,connectTimeout=2000");
            //the lock for singleton
            private static readonly object Locker = new object();
            //singleton
            private static ConnectionMultiplexer redisConn;
            //singleton
            public static ConnectionMultiplexer getRedisConn()
            {
                if (redisConn == null)
                {
                    lock (Locker)
                    {
                        if (redisConn == null || !redisConn.IsConnected)
                        {
                            redisConn = ConnectionMultiplexer.Connect(connDCS);
                        }
                    }
                }
                return redisConn;
            }
            static void Main(string[] args)
            {
                redisConn = getRedisConn();
                var db = redisConn.GetDatabase();
                //set get
                string strKey = "Hello";
                string strValue = "DCS for Redis!";
                Console.WriteLine( strKey + ", " + db.StringGet(strKey));
    
                Console.ReadLine();
            }
        }
    }

    其中,{instance_ip_address}和{port}分别为Redis实例的IP地址/域名以及端口。IP地址/域名和端口获取见1,请按实际情况修改后执行。********为创建Redis实例时自定义的密码,请按实际情况修改后执行。

  7. 运行代码,控制台界面输出如下,表示连接成功。

    Hello, DCS for Redis!

    关于客户端的其他命令,可以参考StackExchange.Redis

相关文档