通过Redisson连接实例
本章节介绍使用Java的开源库Redisson访问GeminiDB Redis实例的方法,主要涉及单机模式和sentinel模式连接。
前提条件
- 已成功创建GeminiDB Redis实例,且实例状态正常。创建GeminiDB Redis实例的方法请参见购买GeminiDB Redis集群版实例。
- 已创建弹性云服务器,创建弹性云服务器的方法,请参见《弹性云服务器快速入门》中“购买弹性云服务器”章节。
- 弹性云服务器上已经安装GCC等编译工具。
- 创建的弹性云服务器与GeminiDB Redis实例要保证区域、可用区、VPC和安全组一致。
样例代码:
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(); // 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放、使用时解密),确保安全; // 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。 String password = System.getenv("EXAMPLE_PASSWORD_ENV"); config.useSingleServer().setAddress("redis://172.xx.xx.xx:6379") .setPassword(password); RedissonClient redisson = Redisson.create(config); execute(redisson); // send requests to database redisson.shutdown(); } public static void main(String[] args) { testSingleServer(); } }
- 上述代码中“172.xx.xx.xx”为待连接GeminiDB Redis实例的负载均衡地址。
您可以单击实例名称,进入“基本信息”页面,在网络信息区域获取“负载均衡地址”。
图1 查看负载均衡地址 - 上述代码中的“6379”为待连接GeminiDB Redis实例的端口,具体请以实际端口为准。获取端口的方法请参见查看GeminiDB Redis IP地址和端口。
- GeminiDB Redis支持与限制的命令,详情请参见开发运维规范。
- 由于GeminiDB Redis和开源Redis集群计算hash算法不同,因此GeminiDB Redis的部分命令需要给对应的key打上hashtag,否则会出现非预期的行为。hashtag使用建议参考开发运维规范。
样例代码:
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(); // 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放、使用时解密),确保安全; // 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。 String password = System.getenv("EXAMPLE_PASSWORD_ENV"); config.useSentinelServers() .setMasterName(master_name) .setCheckSentinelsList(false) .setReadMode(MASTER) .setPassword(password) .addSentinelAddress("redis://172.xx.xx.xx:6379"); RedissonClient redisson = Redisson.create(config); execute(redisson); // send requests to database redisson.shutdown(); } public static void main(String[] args) { testSentinel(); } }
- 上述代码中“172.xx.xx.xx”为待连接GeminiDB Redis实例的负载均衡地址。
您可以单击实例名称,进入“基本信息”页面,在网络信息区域获取“负载均衡地址”。
图2 查看负载均衡地址 - 上述代码中的“6379”为待连接GeminiDB Redis实例的端口,具体请以实际端口为准。获取端口的方法请参见查看GeminiDB Redis IP地址和端口。
- GeminiDB Redis只是实现了Sentinel模式的接入方式,不采用原生sentinel的可用性功能。所以样例代码中,master_name固定为“mymaster”,必须设置“CheckSentinelsList”为“false”,必须设置ReadMode为MASTER。
- GeminiDB Redis支持与限制的命令,详情请参见开发运维规范。
- 由于GeminiDB Redis和开源Redis集群计算hash算法不同,因此GeminiDB Redis的部分命令需要给对应的key打上hashtag,否则会出现非预期的行为。hashtag使用建议参考开发运维规范。
样例代码:
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("redis://172.xx.xx.xx:6379") .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”为待连接GeminiDB Redis实例的负载均衡地址。
您可以单击实例名称,进入“基本信息”页面,在网络信息区域获取“负载均衡地址”。
图3 查看负载均衡地址 - 上述代码中的“6379”为待连接GeminiDB Redis实例的端口,具体请以实际端口为准。获取端口的方法请参见查看GeminiDB Redis IP地址和端口。
- GeminiDB Redis支持与限制的命令,详情请参见开发运维规范。
- 由于GeminiDB Redis和开源Redis集群计算hash算法不同,因此GeminiDB Redis的部分命令需要给对应的key打上hashtag,否则会出现非预期的行为。hashtag使用建议参考开发运维规范。