更新时间:2024-10-30 GMT+08:00

通过C#语言连接实例

本章节主要介绍使用C# 语言访问GeminiDB Redis实例的方法。

前提条件

  • 已成功创建GeminiDB Redis实例,且实例状态为“正常”。
  • 已创建弹性云服务器,创建弹性云服务器的方法,请参见《弹性云服务器快速入门》中“购买弹性云服务器”章节。
  • 弹性云服务器上已经安装GCC等编译工具。
  • 创建的弹性云服务器GeminiDB Redis实例要保证区域、可用区、VPC和安全组一致。

操作步骤

  1. 获取GeminiDB Redis实例的负载均衡地址和端口信息。

  2. 登录弹性云服务器,具体操作请参见《弹性云服务器快速入门》中“登录弹性云服务器”。
  3. 安装.Net。Windows主机前往进入.NET官网下载,Linux主机需要安装 .NET Core 的密钥和存储库,再安装.Net运行时和SDK:

    sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm
    sudo yum install dotnet-sdk-7.0
    sudo yum install dotnet-runtime-7.0    

    运行

    dotnet --version 

    您将会看到您的.Net版本信息。

  4. 使用StackExchange.Redis客户端连接GeminiDB Redis实例。

    • 创建项目

      在命令行窗口中运行以下命令创建一个新的C#控制台应用程序;或者在Visual Studio中创建一个新的C#控制台应用程序。

      dotnet new console -o redisdemo
    • 安装Redis的C#客户端 StackExchange.Redis包。Visual Studio中您可以从NuGet包管理器中安装StackExchange.Redis。或者dotnet项目所在的命令行窗口,运行以下命令:
       dotnet add package StackExchange.Redis
    • 使用单机方式连接GeminiDB Redis
      using System;
      using StackExchange.Redis;  
      namespace redisdemo
      {
          class Program
          {
              static void  Main(string[] args)
              {
                  // 创建一个连接到Redis服务器的ConnectionMultiplexer对象
                  string redisConnectionString = " 192.xx.xx.xx:6379"; // 步骤1获取到的负载均衡地址
                  ConfigurationOptions options = ConfigurationOptions.Parse(redisConnectionString);
                  // 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放、使用时解密),确保安全;
                  // 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。
                  string password = Environment.GetEnvironmentVariable("EXAMPLE_PASSWORD_ENV");
                  options.Password = password; 
                  ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(options);
       
                  // 获取Redis数据库对象
                  IDatabase redisDb = redis.GetDatabase();
       
                  // 设置一个键值对
                  string key = "mykey";
                  string value = "myvalue";
                  redisDb.StringSet(key, value);
                  string valueGet = redisDb.StringGet(key);
                  Console.WriteLine($"键 {key} 对应的值为:{valueGet}");
              }
          }
      }  

    预期输出

    键 mykey 对应的值为:myvalue
    • 使用集群方式连接GeminiDB Redis集群
      using System;
      using StackExchange.Redis;
      
      namespace redisdemo
      {
          class Program
          {
              static void  Main(string[] args)
              {
                      ConfigurationOptions options = new ConfigurationOptions();
                      options.EndPoints.Add("192.xx.xx.xx:6379"); // 步骤1获得的实例集群节点1的地址和端口号
                      options.EndPoints.Add("192.xx.xx.xx:6379"); // 步骤1获得的实例集群节点2的地址和端口号               
                      options.Password = "your_password"; // 设置密码
                      ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(options);
                      // 获取Redis数据库对象
                      IDatabase redisDb = redis.GetDatabase();
                      // 设置一个键值对
                      string key = "mykey";
                      string value = "myvalue";
                      redisDb.StringSet(key, value);
                      string valueGet = redisDb.StringGet(key);
                      Console.WriteLine($"键 {key} 对应的值为:{valueGet}");
              }
          }
      }     

    预期输出

    键 mykey 对应的值为:myvalue