企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
Jedis是一款java操作redis数据库的工具,类似于jdbc。 [TOC] ## 1. 使用步骤 1. 导入依赖包 | JAR包 | | --- | | [jedis-3.3.0.jar](https://mvnrepository.com/artifact/redis.clients/jedis/3.3.0) <br/>[junit-4.13.jar](https://mvnrepository.com/artifact/junit/junit/4.13):用于测试| 2. 测试连接 先打开redis服务,而且不要关闭打开的窗口 ![](https://img.kancloud.cn/5f/70/5f700132a7d13d86de0061d25bbf19ba_890x296.png) ``` package test; import redis.clients.jedis.Jedis; public class Test { @org.junit.Test public void test() { // Jedis jedis = new Jedis("localhost", 6379)使用本机端口 Jedis jedis = new Jedis("localhost"); // 不使用本机端口也行 // 如果 Redis 服务设置来密码,需要下面这行,没有就不需要 // jedis.auth("123456"); jedis.set("student", "张三"); // 输出student:张三,连接成功 System.out.println("student:" + jedis.get("student")); jedis.close(); } } ``` 可以如下获取本机的默认端口。 ![](https://img.kancloud.cn/2d/6c/2d6c9a3bc75da3e32f0fa9cf53f9fa3b_892x478.png) <br/> ## 2. 字符串类型string ```java @org.junit.Test public void test() throws InterruptedException { Jedis jedis = new Jedis("localhost",6379); // 10秒后过期 jedis.setex("studentName", 10, "张三"); System.out.println("studentName=" + jedis.get("studentName")); Thread.sleep(10000); System.out.println("(10秒后)studentName=" + jedis.get("studentName")); jedis.close(); } ``` ![](https://img.kancloud.cn/c8/f9/c8f9a1a5626fe9d62ed9745191062e94_609x188.png) <br/> ## 3. 哈希类型hash(map格式) ```java @org.junit.Test public void test() throws InterruptedException { Jedis jedis = new Jedis("localhost",6379); jedis.hset("user", "name", "张三"); jedis.hset("user", "age", "18"); jedis.hset("user", "gender", "male"); System.out.println("姓名:" + jedis.hget("user", "name") + "\t年龄:" + jedis.hget("user", "age") + "\t性别:" + jedis.hget("user", "gender")); // 获取全部 Map<String, String> userMap = jedis.hgetAll("user"); System.out.println("---------------"); System.out.println(userMap); jedis.close(); } ``` ![](https://img.kancloud.cn/5f/b3/5fb31c58c3ecc7b3dcbf7b3efa90e09f_680x228.png) <br/> ## 4. 列表类型list(linkedlist格式) 字符串列表,根据插入顺序排序,可以添加一个元素到列表的头部或者尾部,其实相当于一个队列 ``` @org.junit.Test public void test() throws InterruptedException { Jedis jedis = new Jedis("localhost",6379); jedis.lpush("student", "张三", "王五", "李四"); jedis.rpush("student", "zhangsan", "wangwu", "lisi"); // 根据范围取 List<String> studentList = jedis.lrange("student", 0, -1); System.out.println("--弹出前---" + studentList + "-----"); // 弹出,即删除该元素并返回这个元素 System.out.println("-----左边弹出一个:" + jedis.lpop("student")); System.out.println("-----右边弹出一个:" + jedis.rpop("student")); studentList = jedis.lrange("student", 0, -1); System.out.println("--弹出后---" + studentList + "-----"); jedis.close(); } ``` ![](https://img.kancloud.cn/63/7c/637cc0be1b0138b8a5adff2cba3de995_689x232.png) <br/> ## 5. 集合类型set(hashset) 不允许重复,指的是同一个键如果存储两个相同的值,则前面存的会被覆盖 ``` @org.junit.Test public void test() throws InterruptedException { Jedis jedis = new Jedis("localhost",6379); jedis.sadd("language", "Java", "C", "C++", "C#"); // 获取全部数据 Set<String> language = jedis.smembers("language"); System.out.println(language); jedis.close(); } ``` ![](https://img.kancloud.cn/d7/e7/d7e7db9a944b64fc912e2b40c07ffbbd_522x165.png) <br/> ## 6. 有序集合类型sortedset 不允许重复,有序,根据double类型的分数排序,可以用于实现动态排行榜,比如热搜榜 ``` @org.junit.Test public void test() throws InterruptedException { Jedis jedis = new Jedis("localhost",6379); jedis.zadd("sorted", 1.0, "张三"); jedis.zadd("sorted", 3.0, "李四"); jedis.zadd("sorted", 2.0, "王五"); // 根据范围获取 Set<String> sorted = jedis.zrange("sorted", 0, -1); System.out.println("--根据范围获取---" + sorted); // 根据分数范围获取 sorted = jedis.zrangeByScore("sorted", 2, 3.0); System.out.println("--根据分数范围获取---" + sorted); jedis.close(); } ``` ![](https://img.kancloud.cn/4a/94/4a94c7f16830174d95146f9ca0246e88_558x193.png)