🍃前言
本篇文章重点是,介绍一些Java 操作 Redis 的常见命令的使用。
总体分为以下6个部分进行介绍:
- 基础操作
- 字符串操作
- 列表操作
- 哈希表操作
- 集合操作
- 有序集合操作
本篇演示以下两种用法:
- 基础操作
- 字符串操作
🎍基础操作
准备工作代码如下:
public class EssentialDemo { public static void main(String[] args) { JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888"); try (Jedis jedis = jedisPool.getResource()){ jedis.flushAll(); // 在此处调用测试代码 //testGetAndSet(jedis); //testExistsAndDel(jedis); //testKeys(jedis); //testExpireAndTtl(jedis); //testType(jedis); } } }
这里博主只展示如何使用 Java 操作完成这些命令操作,如果有小伙伴对这部分命令作用不了解,可以参考博主写的【Redis】 常见的基本全局命令
🚩get 和 set
- get:获取 key 所对应的 value,若当前key 不存在,则获取为null
- set:设置当前 key 与 value
这两个命令本应该属于字符串操作,但是由于后面基本操作都离不开这两个操作,所以这里先行进行介绍一下。
public static void testGetAndSet(Jedis jedis) { System.out.println("测试 get 和 set"); jedis.set("k1","111"); jedis.set("k2","222"); String result = jedis.get("k1"); System.out.println("k1:" + result); result = jedis.get("k2"); System.out.println("k2:" + result); result = jedis.get("k3"); System.out.println("k3:" + result); }
执行结果如下:
🚩exists 和 del
- exists: 判断当前 key 是否存在
- del: 删除当前key(可以为多个)可以,返回删除 key 的个数
代码示例如下:
public static void testExistsAndDel(Jedis jedis) { System.out.println("测试 exists 和 del"); jedis.set("k1","111"); jedis.set("k2","222"); jedis.set("k3","333"); boolean ret = jedis.exists("k1"); System.out.println("k1 : " + ret); long n = jedis.del("k1"); ret = jedis.exists("k1"); System.out.println("n : " + n); System.out.println("k1 : " + ret); n = jedis.del("k2","k3"); System.out.println("n : " + n); ret = jedis.exists("k2"); System.out.println("k2 : " + ret); ret = jedis.exists("k3"); System.out.println("k3 : " + ret); }
执行情况如下:
🚩keys
- keys:获取相应的key,可以使用通配符,返回一个集合
代码示例如下:
public static void testKeys(Jedis jedis) { System.out.println("测试 keys"); jedis.set("k1","11"); jedis.set("k2","22"); jedis.set("k3","33"); Set<String> arrayList = jedis.keys("*"); System.out.println("* : " + arrayList); }
执行结果如下:
🚩expire 和 ttl
- expire:设置过期时间,使⽤ setex 直接设置 key 的同时指定过期时间. 单位为秒
- ttl:显示剩余时间
代码示例如下:
public static void testExpireAndTtl(Jedis jedis) { System.out.println("测试 expire 和 ttl"); jedis.setex("key",2,"value"); long ttl = 1; while (ttl > 0) { try { Thread.sleep(100); ttl = jedis.ttl("key"); System.out.println("剩余:" + ttl); } catch (InterruptedException e) { throw new RuntimeException(e); } } }
执行结果如下:
🚩type
- type:显示当前key所对应value的类型
代码示例如下:
public static void testType(Jedis jedis) { jedis.set("key1", "value"); System.out.println(jedis.type("key1")); jedis.lpush("key2", "a", "b", "c"); System.out.println(jedis.type("key2")); jedis.hset("key3", "name", "zhangsan"); System.out.println(jedis.type("key3")); jedis.sadd("key4", "111", "222", "333"); System.out.println(jedis.type("key4")); jedis.zadd("key5", 1, "aaa"); System.out.println(jedis.type("key5")); }
执行结果如下:
🍀字符串操作
除去上面所介绍的 get 与 set ,还有以下操作。
首先准备工作代码如下:
public class StringDemo { public static void main(String[] args) { JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888"); try (Jedis jedis = jedisPool.getResource()){ jedis.flushAll(); //在此处调用测试代码 //testMsetAndMget(jedis); //testAppend(jedis); //testSetrangeAndGetrange(jedis); //testSetnx(jedis); //testIncrDecr(jedis); //testIncrbyDecrby(jedis); } } }
这里博主只展示如何使用 Java 操作完成这些命令操作,如果有小伙伴对这部分命令作用不了解,可以参考博主写【Redis】 String 字符串类型常见命令
🚩mset 和 mget
- mset:设置多个key与value
- mset:获取多个key的value,返回一个列表
代码示例如下:
public static void testMsetAndMget(Jedis jedis) { jedis.mset("k1","11","k2","22","k3","33"); List<String> list = jedis.mget("k1","k2","k3","k4"); System.out.println("list : " + list); }
执行结果如下:
🚩append
- append:对原字符串进行拼接
代码示例如下:
public static void testAppend(Jedis jedis) { System.out.println("测试 append "); jedis.set("k1","abc"); String result = jedis.get("k1"); System.out.println("result : " + result); jedis.append("k1","def"); result = jedis.get("k1"); System.out.println("result : " + result); }
执行结果如下:
🚩getrange 和 setrange
- setrange:覆盖字符串的⼀部分,从指定的偏移开始。
- getrange:返回 key 对应的 string 的⼦串(左闭右闭)。
代码示例如下:
public static void testSetrangeAndGetrange(Jedis jedis) { System.out.println("测试 setrange 和 getrange"); jedis.set("key","abcdefg"); String result = jedis.getrange("key",0,-1); System.out.println("result : " + result); result = jedis.getrange("key",1,4); System.out.println("result : " + result); jedis.setrange("key",0,"123"); result = jedis.getrange("key",0,-1); System.out.println("result : " + result); }
执行结果如下:
🚩setnx
- setnx:设置 key-value 但只允许在 key 之前不存在的情况下。
代码示例如下:
public static void testSetnx(Jedis jedis) { System.out.println("测试 setnx"); jedis.set("k1","11"); long n = jedis.setnx("k1","11"); System.out.println(n); n = jedis.setnx("k2","22"); System.out.println(n); String result = jedis.get("k2"); System.out.println(result); }
代码执行结如下
🚩incr 和 decr
- incr:将 key 对应的 string 表⽰的数字加⼀
- decr:将 key 对应的 string 表⽰的数字减⼀
代码示例如下:
public static void testIncrDecr(Jedis jedis) { System.out.println("测试 incr 和 decr"); jedis.set("k1","5"); String result = jedis.get("k1"); System.out.println("此时result : " + result); jedis.decr("k1"); result = jedis.get("k1"); System.out.println("result - 1 : " + result); System.out.println("此时result : " + result); jedis.incr("k1"); result = jedis.get("k1"); System.out.println("result + 1 : " + result); }
执行结果如下:
🚩incrby 和 decrby
- incrby:将 key 对应的 string 表⽰的数字加上对应的值。
- decrby:将 key 对应的 string 表⽰的数字减去对应的值。
代码示例如下:
public static void testIncrbyDecrby(Jedis jedis) { System.out.println("测试 incr 和 decr"); jedis.set("k1","5"); String result = jedis.get("k1"); System.out.println("此时result : " + result); jedis.decrBy("k1",5); result = jedis.get("k1"); System.out.println("result - 5 : " + result); System.out.println("此时result : " + result); jedis.incrBy("k1",5); result = jedis.get("k1"); System.out.println("result + 5 : " + result); }
执行结果如下:
⭕总结
关于《【Redis】 Java操作Redis客户端命令——基础操作与字符串操作》就讲解到这儿,感谢大家的支持,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下