Jedis 简介
Jedis 是 Java 操作 Redis 的驱动架包。在使用前需要先下载好驱动架包jedis.jar
- 首先你需要下载驱动包 下载 jedis.jar,确保下载好驱动包。
- 在 classpath 中包含该驱动包。
连接到 redis 服务
复制 | |
| @Test |
| public void ConnectionRedisTest() { |
| |
| Jedis jedis = new Jedis("127.0.0.1", 6379); |
| System.out.println("连接成功"); |
| |
| System.out.println("服务正在运行: " + jedis.ping()); |
| |
| jedis.close(); |
| } |
输出:
复制
Jedis 操作 Redis 中的各种数据结构
String(字符串)
复制 | |
| @Test |
| public void OperateStringTest() throws InterruptedException { |
| |
| Jedis jedis = new Jedis(); |
| |
| jedis.set("username", "LeeHua"); |
| |
| System.out.println(jedis.get("username")); |
| |
| |
| jedis.setex("checkCode", 10, "AbCd"); |
| System.out.println(jedis.get("checkCode")); |
| |
| Thread.sleep(10000); |
| System.out.println("停顿10秒后,再获取 checkCode:" + jedis.get("checkCode")); |
| |
| jedis.del("username"); |
| |
| jedis.close(); |
| } |
输出:
复制 | LeeHua |
| AbCd |
| 停顿10秒后,再获取 checkCode:null |
Hash (哈希)
复制 | |
| @Test |
| public void OperateHashTest() throws InterruptedException { |
| |
| Jedis jedis = new Jedis(); |
| |
| jedis.hset("user", "name", "LeeHua"); |
| jedis.hset("user", "age", "21"); |
| jedis.hset("user", "gender", "male"); |
| |
| System.out.println(jedis.hget("user", "name")); |
| System.out.println(jedis.hget("user", "age")); |
| System.out.println(jedis.hget("user", "gender")); |
| |
| Map<String, String> userMap = jedis.hgetAll("user"); |
| Set<String> users = userMap.keySet(); |
| Iterator<String> userIterator = users.iterator(); |
| while (userIterator.hasNext()) { |
| String key = userIterator.next(); |
| String value = userMap.get(key); |
| System.out.println(key + ": " + value); |
| } |
| |
| jedis.hdel("user", "name"); |
| jedis.hdel("user", "age"); |
| jedis.hdel("user", "gender"); |
| |
| jedis.close(); |
| } |
输出:
复制 | LeeHua |
| 21 |
| male |
| gender: male |
| name: LeeHua |
| age: 21 |
List(列表)
复制 | |
| @Test |
| public void OperateListTest() { |
| |
| Jedis jedis = new Jedis(); |
| |
| jedis.lpush("testList", "1", "2", "3"); |
| |
| jedis.rpush("testList", "A", "B", "C"); |
| |
| System.out.println(jedis.lrange("testList", 0, 5)); |
| |
| |
| String leftFirst = jedis.lpop("testList"); |
| String leftSecond = jedis.lpop("testList"); |
| String leftThird = jedis.lpop("testList"); |
| |
| String rightFirst = jedis.rpop("testList"); |
| String rightSecond = jedis.rpop("testList"); |
| String rightThird = jedis.rpop("testList"); |
| System.out.println("左边开始删除:" + leftFirst + "、" + leftSecond + "、" + leftThird); |
| System.out.println("右边开始删除:" + rightFirst + "、" + rightSecond + "、" + rightThird); |
| |
| jedis.close(); |
| } |
输出:
复制 | [3, 2, 1, A, B, C] |
| 左边开始删除:3、2、1 |
| 右边开始删除:C、B、A |
Set(无序集合)
复制 | |
| @Test |
| public void OperateSetTest() { |
| |
| Jedis jedis = new Jedis(); |
| |
| jedis.sadd("BigData", |
| "HDFS", "MapReduce", "Spark", "Storm"); |
| |
| Set<String> bigData = jedis.smembers("BigData"); |
| System.out.println(Arrays.toString(bigData.toArray())); |
| |
| jedis.srem("BigData", "HDFS", "MapReduce", "Spark", "Storm"); |
| |
| jedis.close(); |
| } |
输出(无序的):
复制 | [Storm, HDFS, Spark, MapReduce] |
Zset(有序集合)
复制 | |
| @Test |
| public void OperateSortSetTest() { |
| |
| Jedis jedis = new Jedis(); |
| |
| jedis.zadd("BigData", 10, "HDFS"); |
| jedis.zadd("BigData", 20, "MapReduce"); |
| jedis.zadd("BigData", 30, "Spark"); |
| jedis.zadd("BigData", 1, "Storm"); |
| |
| Set<String> bigData = jedis.zrange("BigData", 0, 3); |
| System.out.println(Arrays.toString(bigData.toArray())); |
| |
| jedis.zrem("BigData", "HDFS", "MapReduce", "Spark", "Storm"); |
| |
| jedis.close(); |
| } |
输出:
复制 | [Storm, HDFS, MapReduce, Spark] |
Jedis 连接池
Jedis 连接池的使用
复制 | @Test |
| public void JedisPoolTest() { |
| |
| JedisPool jedisPool = new JedisPool("127.0.0.1", 6379); |
| |
| Jedis jedis = jedisPool.getResource(); |
| System.out.println("服务正在运行: " + jedis.ping()); |
| |
| jedis.close(); |
| } |
输出:
复制
Jedis 连接池工具类
-
配置文件:jedis.properties
复制 | |
| host=127.0.0.1 |
| |
| port=6379 |
| |
| maxTotal=50 |
| |
| maxIdle=10 |
-
数据库连接池:JedisPoolUtils.java
复制 | import redis.clients.jedis.Jedis; |
| import redis.clients.jedis.JedisPool; |
| import redis.clients.jedis.JedisPoolConfig; |
| |
| import java.io.IOException; |
| import java.io.InputStream; |
| import java.util.Properties; |
| |
| public class JedisPoolUtils { |
| private static JedisPool jedisPool; |
| |
| |
| static { |
| |
| ClassLoader classLoader = JedisPoolUtils.class.getClassLoader(); |
| |
| Properties properties = new Properties(); |
| |
| InputStream jedisProperties = classLoader.getResourceAsStream("jedis.properties"); |
| |
| try { |
| properties.load(jedisProperties); |
| } catch (IOException e) { |
| e.printStackTrace(); |
| } |
| |
| JedisPoolConfig config = new JedisPoolConfig(); |
| config.setMaxTotal(Integer.parseInt(properties.getProperty("maxTotal"))); |
| config.setMaxIdle(Integer.parseInt(properties.getProperty("maxIdle"))); |
| |
| |
| jedisPool = new JedisPool( |
| config, |
| properties.getProperty("host"), |
| Integer.parseInt(properties.getProperty("port")) |
| ); |
| } |
| |
| |
| public static Jedis getJedis() { |
| return jedisPool.getResource(); |
| } |
| } |
-
测试连接池
复制 | |
| @Test |
| public void JedisPoolUtilsTest() { |
| |
| Jedis jedis = JedisPoolUtils.getJedis(); |
| System.out.println("连接成功"); |
| |
| System.out.println("服务正在运行: " + jedis.ping()); |
| |
| jedis.close(); |
| } |
输出:
复制
参考文献
- Redis 教程| 菜鸟教程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)