更新时间: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) {
        genericobjectpoolconfig config = 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使用建议参考开发运维规范
分享:
网站地图