更新时间:2025-07-24 GMT+08:00

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

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

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

约束与限制

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

如果是Redis 7.0实例,请使用2.6.111及以上版本的hiredis客户端,推荐2.7.0及以上版本。

前提条件

  • 已成功创建Redis实例,且状态为“运行中”。创建Redis实例的操作请参考购买Redis实例
  • 已创建弹性云服务器,创建弹性云服务器的方法,请参见购买弹性云服务器
  • 如果弹性云服务器为Linux系统,该弹性云服务器必须已经安装gcc编译环境(可通过gcc --version命令查询gcc版本,如果已安装gcc编译环境,会返回gcc版本)。

    如果ECS未安装gcc编译环境,请执行以下命令进行安装:

    yum install -y make
    yum install -y pcre-devel
    yum install -y zlib-devel
    yum install -y libevent-devel
    yum install -y openssl-devel
    yum install -y gcc-c++
  • 连接实例前确保客户端与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实例时自定义的密码,请按实际情况修改后执行。如果使用实例创建的ACL账号连接,实例密码需要配置为“账号名称:账号密码”。创建或查看ACL账号,请参见配置Redis ACL访问账号。如果实例为免密访问,则省略命令中的密码配置。

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

    Hello, DCS for Redis!

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

相关文档

如果Redis连接过程出现问题,请参见Redis连接失败问题排查和解决