文章目录
🍃前言
本篇文章重点是,介绍一些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客户端命令——基础操作与字符串操作》就讲解到这儿,感谢大家的支持,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下