Redis поддерживает клиентов на многих языках. Есть все поддерживаемые на официальном сайтесписок клиентов Redis.
Поскольку в качестве языка разработки обычно используется java, вот как подключиться к серверу Redis и управлять им через java. В официальной документации рекомендуемый клиент Redis для Java:Jedis, здесь мы также используем этот клиент для работы с сервером Redis.
импортировать зависимости
Сначала мы создаем проект maven и добавляем его в файл pom.xml проекта.JedisСсылки на зависимости. Для облегчения тестирования также добавлены зависимости Junit. Содержимое файла следующее.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.x9710.common</groupId>
<artifactId>redis-util</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Создать класс подключения
Создайте класс подключения Rediscom.x9710.common.redis.RedisConnection. Содержание выглядит следующим образом пакет com.x9710.common.redis;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class RedisConnection {
/**
* redis 连接池配置信息
*/
private JedisPoolConfig jedisPoolConfig;
/**
* redis 服务器地址
*/
private String ip;
/**
* redis 服务器端口
*/
private Integer port;
/**
* redis 服务器密码
*/
private String pwd;
/**
* redis 服务器连接超时时间
*/
private Integer timeOut;
/**
* redis 连接客户端名称
*/
private String clientName = null;
private JedisPool jedisPool;
public void setJedisPoolConfig(JedisPoolConfig jedisPoolConfig) {
this.jedisPoolConfig = jedisPoolConfig;
}
public void setIp(String ip) {
this.ip = ip;
}
public void setPort(Integer port) {
this.port = port;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public void setTimeOut(Integer timeOut) {
this.timeOut = timeOut;
}
public void setClientName(String clientName) {
this.clientName = clientName;
}
private void buildConnection() {
if (jedisPool == null) {
if (jedisPoolConfig == null) {
jedisPool = new JedisPool(new JedisPoolConfig(), ip, port, timeOut, pwd, 0, clientName);
} else {
jedisPool = new JedisPool(jedisPoolConfig, ip, port, timeOut, pwd, 0, clientName);
}
}
}
public Jedis getJedis() {
buildConnection();
if (jedisPool != null) {
return jedisPool.getResource();
}
return null;
}
}
писать тесты
с тестовым классомcom.x9710.common.redis.test.RedisConnectionTestдля проверки функциональности соединения rdis.
package com.x9710.common.redis.test;
import com.x9710.common.redis.RedisConnection;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPoolConfig;
public class RedisConnectionTest {
private RedisConnection redisConnection;
@Before
public void before() {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//设置 redis 连接池最大连接数量
jedisPoolConfig.setMaxTotal(50);
//设置 redis 连接池最大空闲连接数量
jedisPoolConfig.setMaxIdle(10);
//设置 redis 连接池最小空闲连接数量
jedisPoolConfig.setMinIdle(1);
redisConnection = new RedisConnection();
redisConnection.setIp("10.110.2.56");
redisConnection.setPort(52981);
redisConnection.setPwd("hhSbcpotThgWdnxJNhrzwstSP20DvYOldkjf");
redisConnection.setClientName(Thread.currentThread().getName());
redisConnection.setTimeOut(600);
redisConnection.setJedisPoolConfig(jedisPoolConfig);
}
@Test
public void testPutGet() {
Jedis jedis = redisConnection.getJedis();
try {
jedis.select(1);
jedis.set("name","grace");
Assert.assertTrue("grace".equals(jedis.get("name")));
} finally {
if (jedis != null) {
jedis.close();
}
}
}
}
Выполните тестовый пример в среде IDE, и результат будет следующим.
Теперь мы используем клиент Jedit на Java для установления соединения с Redis и выполнения операций. Соответствующий код размещен наGitHubсередина
Оригинальный текст был опубликован в брифе,оригинальная ссылка