云服务器内容精选

  • 使用Sentinel模式连接实例 样例代码: import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; import static org.redisson.config.ReadMode.MASTER; public class SingleServerTests { public static void testSentinel() { Config config = new Config(); config.useSentinelServers() .setMasterName(master_name) .setCheckSentinelsList(false) .setReadMode(MASTER) .setPassword(password) .addSentinelAddress("redis://172.xx.xx.xx:8635"); RedissonClient redisson = Redisson.create(config); execute(redisson); // send requests to database redisson.shutdown(); } public static void main(String[] args) { testSentinel(); } } 上述代码中“172.xx.xx.xx”为待连接GaussDB(for Redis)实例的负载均衡地址。 您可以单击实例名称,进入“基本信息”页面,在网络信息区域获取“负载均衡地址”。 图2 查看负载均衡地址 上述代码中的“8635”为待连接GaussDB(for Redis)实例的端口,具体请以实际端口为准。获取端口的方法请参见查看IP地址和端口。 GaussDB(for Redis)只是实现了Sentinel模式的接入方式,不采用原生sentinel的可用性功能。所以样例代码中,master_name固定为“mymaster”,必须设置“CheckSentinelsList”为fasle,必须设置ReadMode为MASTER。 GaussDB(for Redis)支持与限制的命令,详情请参见开发规范。 由于GaussDB(for Redis)和开源Redis集群计算hash算法不同,因此GaussDB(for Redis)的部分命令需要给对应的key打上hash tag,否则会出现非预期的行为。hash tag使用建议参考开发规范。
  • 使用SingleServer模式连接实例 样例代码: import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; public class SingleServerTests { private static void testSingleServer() { Config config = new Config(); config.useSingleServer().setAddress("redis://172.xx.xx.xx:8635") .setPassword(password); RedissonClient redisson = Redisson.create(config); execute(redisson); // send requests to database redisson.shutdown(); } public static void main(String[] args) { testSingleServer(); } }
  • 使用ClusterServer模式连接实例 样例代码: import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; public class ClusterServerTests { private static void testClusterServer() { Config config = new Config(); config.useClusterServers() .addNodeAddress("172.xx.xx.xx:8635").setPassword(password); RedissonClient redisson = Redisson.create(config); execute(redisson); // send requests to database redisson.shutdown(); } public static void main(String[] args) { testClusterServer(); } } 上述代码中“172.xx.xx.xx”为待连接GaussDB(for Redis)实例的负载均衡地址。 您可以单击实例名称,进入“基本信息”页面,在网络信息区域获取“负载均衡地址”。 图3 查看负载均衡地址 上述代码中的“8635”为待连接GaussDB(for Redis)实例的端口,具体请以实际端口为准。获取端口的方法请参见查看IP地址和端口。 GaussDB(for Redis)支持与限制的命令,详情请参见开发规范。 由于GaussDB(for Redis)和开源Redis集群计算hash算法不同,因此GaussDB(for Redis)的部分命令需要给对应的key打上hash tag,否则会出现非预期的行为。hash tag使用建议参考开发规范。
  • 使用JedisCluster访问 样例代码 import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import redis.clients.jedis.HostAndPort; import redis.clients.jedis.JedisCluster; public class ClusterTests { private static void testCluster() { String pwd = "a"; JedisCluster cluster = new JedisCluster(new HostAndPort("172.xx.xx.xx", 8635), 200, 2000, 5, pwd, new GenericObjectPoolConfig()); System.out.println(cluster.hgetAll("676296")); System.out.println(cluster.set("key1", "value1")); } public static void main(String[] args) { testCluster(); } }
  • 使用JedisPool访问(推荐) 样例代码 import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; public class JedisPoolTests { private static void testPool() { String pwd = "a"; JedisPool pool = new JedisPool(new GenericObjectPoolConfig(), "172.xx.xx.xx", 8635, 2000, pwd); Jedis jedis = pool.getResource(); try { System.out.println(jedis.hgetAll("676296")); System.out.println(jedis.set("key1", "value1")); } finally { jedis.close(); } pool.destroy(); } public static void main(String[] args) { testPool(); } }
  • 操作步骤 获取GaussDB(for Redis)实例的负载均衡地址和端口信息。 负载均衡地址的查看方法请参见查看查看负载均衡地址及端口。 端口信息的获取方法请参见查看查看实例节点端口。 各实例地址的查看方法请参见查看查看内网IP地址或弹性公网IP。 登录弹性云服务器,具体操作请参见《弹性云服务器快速入门》中“登录弹性云服务器”。 安装.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版本信息。 使用StackExchange.Redis客户端连接GaussDB(for 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 使用单机方式连接GaussDB(for 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); 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 使用集群方式连接GaussDB(for 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