更新时间:2024-01-05 gmt 08:00
通过jedis连接实例-凯发k8国际娱乐官网入口
本章节介绍使用jedis(java客户端)访问geminidb redis实例的方法。
由于geminidb redis的“proxy集群”架构提供了统一的负载均衡地址,并提供高可用能力,因此推荐使用jedispool单机模式轻松接入。
此外,geminidb redis对jedissentinelpool、jediscluster两种模式也提供支持。
前提条件
- 已成功创建geminidb redis实例,且实例状态正常。创建geminidb redis实例的方法请参见购买实例(集群版)。
- 已创建弹性云服务器,创建弹性云服务器的方法,请参见《弹性云服务器快速入门》中“”章节。
- 弹性云服务器上已经安装gcc等编译工具。
- 创建的弹性云服务器与geminidb redis实例要保证区域、可用区、vpc和安全组一致。
使用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(); } }
- 上述代码中“172.xx.xx.xx”为待连接geminidb redis实例的负载均衡地址。
您可以单击实例名称,进入“基本信息”页面,在网络信息区域获取“负载均衡地址”。
图1 查看负载均衡地址
- 上述代码中的“8635”为待连接geminidb redis实例的端口,具体请以实际端口为准。获取端口的方法请参见。
- geminidb redis支持与限制的命令,详情请参见开发运维规范。
- 由于geminidb redis和开源redis集群计算hash算法不同,因此geminidb 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(); } }
- 上述代码中“172.xx.xx.xx”为待连接geminidb redis实例的负载均衡地址。
您可以单击实例名称,进入“基本信息”页面,在网络信息区域获取“负载均衡地址”。
图2 查看负载均衡地址
- 上述代码中的“8635”为待连接geminidb redis实例的端口,具体请以实际端口为准。获取端口的方法请参见。
- geminidb redis支持与限制的命令,详情请参见开发运维规范。
- 由于geminidb redis和开源redis集群计算hash算法不同,因此geminidb redis的部分命令需要给对应的key打上hash tag,否则会出现非预期的行为。hash tag使用建议参考开发运维规范。
使用jedissentinelpool访问
样例代码
import org.apache.commons.pool2.impl.genericobjectpoolconfig; import redis.clients.jedis.jedis; import redis.clients.jedis.jedissentinelpool; import java.util.hashset; import java.util.set; public void sentineltest { public static void main(string[] args) { genericobjectpoolconfigconfig = new genericobjectpoolconfig (); set mysentinels = new hashset (); mysentinels.add("172.xx.xx.xx:8635"); jedissentinelpool pool = new jedissentinelpool(master-name, mysentinels, config, 1000, password, 0); jedis jedis = pool.getresource(); jedis.auth(password); jedis.set("foo", "bar"); string s = jedis.get("foo"); system.out.println(s); jedis.close(); pool.close(); } }
- 上述代码中“172.xx.xx.xx”为待连接geminidb redis实例的负载均衡地址。
您可以单击实例名称,进入“基本信息”页面,在网络信息区域获取“负载均衡地址”。
图3 查看负载均衡地址
- 上述代码中的“8635”为待连接geminidb redis实例的端口,具体请以实际端口为准。获取端口的方法请参见。
- 上述代码中的master-name只能是“mymaster”。
- geminidb redis支持与限制的命令,详情请参见开发运维规范。
- 由于geminidb redis和开源redis集群计算hash算法不同,因此geminidb redis的部分命令需要给对应的key打上hash tag,否则会出现非预期的行为。hash tag使用建议参考开发运维规范。
父主题:
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨