Jedis是Redis官方推荐的Java连接开发工具,它是一个流行的Redis客户端中间件,提供了简单易用的API和高性能的连接池管理。Jedis是一个轻量级的库,适用于大多数Redis应用场景,包括数据缓存、消息队列等。
一、简介
- 功能全面:Jedis几乎涵盖了Redis的所有功能,包括字符串、哈希、列表、集合、有序集合等数据结构的操作。
- 连接池支持:Jedis支持连接池,这意味着你可以创建和管理一组到Redis服务器的连接,从而提高性能和资源利用率。
- 同步与阻塞I/O:Jedis使用阻塞的I/O,并且其方法调用是同步的。这意味着当你调用一个Jedis方法时,程序流会等待sockets处理完I/O才能继续执行。
- 线程安全性:Jedis客户端实例不是线程安全的,所以如果你在多线程环境中使用Jedis,你需要通过连接池来管理连接,并确保每个线程都有自己的Jedis实例。
二、常见的API
1. 连接Redis服务器
Jedis jedis = new Jedis("localhost", 6379);
// 如果Redis设置了密码
// jedis.auth("password");
2. 字符串操作
// 设置键值对
jedis.set("key", "value");
// 获取键对应的值
String value = jedis.get("key");
System.out.println(value); // 输出: value
3. 哈希操作
// 设置哈希中的字段和值
jedis.hset("hashKey", "field1", "value1");
jedis.hset("hashKey", "field2", "value2");
// 获取哈希中指定字段的值
String field1Value = jedis.hget("hashKey", "field1");
System.out.println(field1Value); // 输出: value1
// 获取哈希中所有的字段和值
Map<String, String> hashMap = jedis.hgetAll("hashKey");
for (Map.Entry<String, String> entry : hashMap.entrySet()) { System.out.println("Field: " + entry.getKey() + ", Value: " + entry.getValue());
}
4. 列表操作
// 在列表的左侧插入元素
jedis.lpush("listKey", "element1", "element2");
// 获取列表中的元素(从左侧开始)
List<String> list = jedis.lrange("listKey", 0, -1);
for (String element : list) { System.out.println(element); // 输出: element1, element2
}
5. 关闭连接
jedis.close();