文章目录

一、背景

  • 通过前面一系列文章,我们仅仅了解了Redis缓存服务的安装及相应配置,而往往在实际的项目编程中是需要一定的客户端来操作Redis的。
  • Jedis是一个非常小而灵巧且易于使用的Redis Java客户端。​​Jedis GitHub地址​
  • 本篇文章将通过Java Maven项目介绍Jedis的一些基本操作。

二、连接配置

  • 首先创建一个Java Maven项目,通过maven引入Jedis的依赖包
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.5.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
  • 编写一个简单的测试类,进行连接测试
/**
* 简单测试Jedis
* @author zhuhuix
*/
public class TestJedis {
@Test
public void testJedis(){
// 创建jedis对象
Jedis jedis=new Jedis("127.0.0.1",6379);
// 创建键值对
jedis.set("key", "jedis");
String string=jedis.get("key");
System.out.println(string);
// 关闭jedis
jedis.close();
}
}

使用Jedis客户端操作Redis缓存_jedis

三、Jedis工具类

  • 为了实现代码封装与重用,我们需要编写统一的工具类
/**
* Jedis工具类
*
* @author zhuhuix
*/
public class JedisUtil {

private static Jedis jedis;

// 初始化
private static void init() {
try {
Resource resource = new ClassPathResource("application.properties");
Properties props = PropertiesLoaderUtils.loadProperties(resource);
String host = props.getProperty("redis.host");
int port = Integer.parseInt(props.getProperty("redis.port"));
String password = props.getProperty("redis.password");
jedis = new Jedis(host, port);
if (!StringUtils.isEmpty(password)) {
jedis.auth(password);
}
} catch (IOException ex) {
ex.printStackTrace();
}
}

public JedisUtil() {
if (jedis == null) {
init();
}
}

// 返回单例
private static Jedis getJedis() {
return jedis;
}

// 设定键值对
public String set(String key, String value) {
return getJedis().set(key, value);
}

// 获取指定key的值
public String get(String key) {
return getJedis().get(key);
}

// 删除键值,键可以是数组
public Long del(String... keys) {
return getJedis().del(keys);
}

// 设置单对hash键值
public Long hset(String key, String field, String value) {
return getJedis().hset(key, field, value);
}

// 根据键获取hash值
public String hget(String key, String field) {
return getJedis().hget(key, field);
}

// 设置多对hash键值
public String hmset(String key, Map<String, String> hash) {
return getJedis().hmset(key, hash);
}

// 根据键数组获取多对值
public List<String> hmget(String key, String... fields) {
return getJedis().hmget(key, fields);
}

// 对键设置过期时间
public Long expire(String key, int seconds) {
return getJedis().expire(key, seconds);
}

// 删除hash键值,可以为多组
public Long hdel(String key, String... fields) {
return getJedis().hdel(key, fields);
}

...
}
  • 编写测试类对工具类进行测试
/**
* 测试Jedis工具类
* @author zhuhuix
*/
public class TestJedisUtil {

@Test
public void test(){
JedisUtil jedisUtil = new JedisUtil();

jedisUtil.set("key","redis");
System.out.println(jedisUtil.get("key"));

jedisUtil.hset("001","name","张三");
jedisUtil.hset("001","age","16");
System.out.println(jedisUtil.hget("001","name"));
System.out.println(jedisUtil.hget("001","age"));

jedisUtil.expire("key",100);
jedisUtil.expire("001",200);

}
}
  • 测试结果
  • 使用Jedis客户端操作Redis缓存_工具类_02