Jedis库提供了对Redis数据库的丰富操作,包括但不限于基本的CRUD操作、事务、管道、发布订阅、哈希、列表、集合、有序集合操作等。由于篇幅限制,我将介绍一些最常用的方法,并为每个方法提供示例说明。
Jedis连接和基础操作
连接Redis
Jedis jedis = new Jedis("localhost", 6379); // 连接本地的Redis
断开连接
jedis.disconnect(); // 断开连接
检查连接
boolean connected = jedis.isConnected(); // 检查是否连接
基本的CRUD操作
- 设置键值对
jedis.set("key", "value"); // 设置字符串键值对
- 获取键的值
String value = jedis.get("key"); // 获取键的值
- 检查键是否存在
boolean exists = jedis.exists("key"); // 检查键是否存在
- 删除键
long deleted = jedis.del("key"); // 删除键
哈希操作
- 设置哈希字段
jedis.hset("hash", "field", "value"); // 在哈希中设置字段
- 获取哈希字段的值
String fieldVal = jedis.hget("hash", "field"); // 获取哈希字段的值
列表操作
- 添加列表元素
jedis.rpush("list", "value"); // 在列表尾部添加元素
- 获取列表元素
List<String> values = jedis.lrange("list", 0, -1); // 获取列表所有元素
集合操作
- 添加集合元素
jedis.sadd("set", "value"); // 向集合添加元素
- 获取集合所有成员
Set<String> members = jedis.smembers("set"); // 获取集合所有成员
有序集合操作
- 添加有序集合元素
jedis.zadd("zset", 1, "value"); // 向有序集合添加元素,1是分数
- 获取有序集合元素
Set<String> zmembers = jedis.zrange("zset", 0, -1); // 获取有序集合所有元素
事务
jedis.multi(); // 开启事务
jedis.set("key", "value");
jedis.get("key");
List<Object> results = jedis.exec(); // 执行事务
管道
jedis.pipeline(); // 开启管道
jedis.set("key", "value");
jedis.get("key");
List<Object> results = jedis.syncAndReturnAllResults(); // 执行管道并获取结果
发布订阅
- 发布消息
Long count = jedis.publish("channel", "message"); // 发布消息到频道
- 订阅频道
jedis.subscribe(new JedisPubSub() {@Overridepublic void onMessage(String channel, String message) {System.out.println("Received message: " + message);} }, "channel"); // 订阅频道接收消息
脚本
String script = "return redis.call('set', KEYS[1], ARGV[1])";
List<String> keys = Arrays.asList("key");
List<String> args = Arrays.asList("value");
Object result = jedis.eval(script, keys, args); // 执行Lua脚本
监控和调试
- 慢查询日志
List<byte[]> slowLog = jedis.slowlogGet(10); // 获取慢查询日志
- 内存信息
String memoryInfo = jedis.info("memory"); // 获取内存相关信息
集群和高可用性
- 集群节点信息
Map<String, JedisClusterNode> nodes = jedis.clusterNodes(); // 获取集群节点信息
安全和权限
- 设置用户
jedis.aclSetUser("user", "on", "+@all"); // 设置用户权限
高级特性
- 位操作
long bits = jedis.bitcount("key"); // 计算键中设置的位的数量
总结
Jedis库提供了非常丰富的API来操作Redis,上述只是其中一部分常用方法的示例。由于篇幅限制,不可能覆盖所有方法,但这些示例应该能帮助你理解Jedis的基本用法和能力。对于更详细的信息和高级特性,建议查阅Jedis官方文档和Redis命令参考。