本文列举客户端 Java 代码示例,辅助您使用 SSL 加密或不加密的方式访问数据库。
准备工作
已获取访问数据库的账号与密码。具体操作,请参见 管理账号。
如果使用 SSL 加密方式连接数据库,请 开通 SSL 加密,获取 SSL 认证证书文件。
准备客户端 Jedis,推荐使用最新版本。
下载 Jedis 及其依赖库(jar 包),如下所示。
wget https://repo1.maven.org/maven2/redis/clients/jedis/4.3.1/jedis-4.3.1.jarwget https://repo1.maven.org/maven2/com/google/code/gson/gson/2.8.9/gson-2.8.9.jarwget https://repol.maven.org/maven2/org/apache/commons/ commons-pool2/2.11.1/commons-pool2-2.11.1.jar
创建测试项目,目录如下所示。

SSL 不加密方式连接示例
您需要根据注释修改参数:连接数据库的 IP、端口及账号密码信息。
说明:
import redis.clients.jedis.Jedis;public class HelloRedis {public static void main(String[] args) {try {/**以下参数,如果为内网访问,分别填写您的 Redis 实例内网 IP、端口号、实例 ID 和密码;如果为外网访问,分别配置实例外网地址、端口号及其密码,无需设置实例 ID*/String host = "192.xx.xx.195";int port = 6379;String instanceid = "crs-09xxxqv";String password = "123ad6aq";//连接 RedisJedis jedis = new Jedis(host, port);//鉴权jedis.auth(instanceid + ":" + password);/**接下来可以开始操作 Redis 实例,可以参考 https://github.com/xetorthio/jedis *///设置 Keyjedis.set("redis", "tencent");System.out.println("set key redis suc, value is: tencent");//获取 KeyString value = jedis.get("redis");System.out.println("get key redis is: " + value);//关闭退出jedis.quit();jedis.close();} catch (Exception e) {e.printStackTrace();}}}
输出信息,如下所示。


SSL 加密方式连接示例
说明:
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import javax.net.ssl.SSLContext;import javax.net.ssl.SSLSocketFactory;import javax.net.ssl.TrustManager;import javax.net.ssl.TrustManagerFactory;import java.io.FileInputStream;import java.io.InputStream;import java.security.KeyStore;import java.security.SecureRandom;public class Main {public static void main(String[] args) throws Exception {KeyStore trustStore = KeyStore.getInstance("jks");//ca.jks 为证书文件名称。try (InputStream inputStream = new FileInputStream("ca.jks") ){trustStore.load(inputStream, null);}TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("PKIX");trustManagerFactory.init(trustStore);TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();SSLContext sslContext = SSLContext.getInstance("TLS");sslContext.init(null, trustManagers, new SecureRandom());SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();GenericObjectPoolConfig genericObjectPoolConfig = new GenericObjectPoolConfig();//with ssl config jedis pool//vip 为连接数据库的内网 IPv4 地址,6379为默认的端口号,pwd 为默认账号的密码。您需根据实际情况替换。JedisPool pool = new JedisPool(genericObjectPoolConfig, "vip",6379, 2000, "pwd", 0, true, sslSocketFactory, null, null);Jedis jedis = pool.getResource();System.out.println(jedis.ping());jedis.close();}}
运行结果
将示例程序(SSL 不加密方式连接示例或 SSL 加密方式连接示例),在 project 下运行。
javac -cp ".:lib/*" src/HelloRedis. java -d ./java-cp ".:lib/*" HelloRedis