近期有空,汇总下redis各个数据结构的操作命令。这篇汇总string命令用于加深记忆。
APPEND
append命令用于在string后追加新的字符串,若该key不存在则先创建一个空字符串的key再执行追加。append命令会返回执行之后value的长度。
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.set("append", "1");
long result = jedis.append("append", "2");
System.out.println("append的结果为 " + result);
System.out.println(jedis.get("append"));
append的结果为 2
12
DECR
decr命令可用于对对应的数字做减1操作。如果key不存在则先创建该key并将值设为0。decr命令能够返回减过之后的值。注:该操作支持64位有符号整形数值。
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.set("append", "12");
System.out.println("decr之后的结果为 " + jedis.decr("append"));
System.out.println("decr之后的结果为 " + jedis.decr("append2"));
decr之后的结果为 11
decr之后的结果为 -1
DECRBY
decrby命令能够另value减去对应的数值。如果key不存在则先创建该key并将值设为0。decrby命令能够返回减过之后的值。注:该操作支持64位有符号整形数值。
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.set("append", "12");
System.out.println("decr之后的结果为 " + jedis.decrBy("append", 2));
System.out.println("decr之后的结果为 " + jedis.decrBy("append3", 2));
decr之后的结果为 10
decr之后的结果为 -2
GET
get命令用于根据key值获取value。若不存在对应的key则返回null。若返回的值不是string类型则报错。
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.set("append", "12");
System.out.println("get获取的值为" + jedis.get("append"));
System.out.println("get获取的值为" + jedis.get("append4"));
get获取的值为12
get获取的值为null
GETRANGE
getrange命令用于获取指定范围的字符串,获取的范围为指定范围的闭区间,若超出字符串长度则截取至字符串最后的字符。
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.set("append", "1234567");
System.out.println("getRange获取的值为 " + jedis.getrange("append", 1, 2));
System.out.println("getRange获取的值为 " + jedis.getrange("append", 2, 100));
getRange获取的值为 23
getRange获取的值为 34567
GETSET
getset命令用于返回原来key的旧值并设置key的新值。若该key不存在,则返回null。
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.set("append", "1234567");
jedis.decr("append");
System.out.println("getSet获取的值为 " + jedis.getSet("append", "1234567"));
System.out.println("getSet之后的值 " + jedis.get("append"));
System.out.println("getSet获取的值为 " + jedis.getSet("append5", "100"));
System.out.println("getSet之后的值 " + jedis.get("append5"));
getSet之后的值 1234567
getSet获取的值为 null
getSet之后的值 100
INCR
incr命令用于对key对应的值加1,若不存在该key则先创建该key并设置value为0然后再执行操作。注:该操作支持64位有符号整形数值。
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.set("append", "1234567");
System.out.println("incr获取的值为 " + jedis.incr("append"));
System.out.println("incr获取的值为 " + jedis.incr("append6"));
incr获取的值为 1234568
incr获取的值为 1
INCRBY
inceby命令用于对key对应的值进行加法操作,若不存在该key则先创建该key并设置value为0然后再执行操作。注:该操作支持64位有符号整形数值。
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.set("append", "1234567");
System.out.println("incrBy获取的值为 " + jedis.incrBy("append", 100));
System.out.println("incrBy获取的值为 " + jedis.incrBy("append7", 100));
incrBy获取的值为 1234667
incrBy获取的值为 100
MGET
mget命令用于返回key的值,如果value不是string类型或者不存在该key,则返回null。
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.set("append", "1234567");
jedis.lpush("append1", "a");
jedis.lpush("append1", "b");
jedis.lpush("append1", "c");
System.out.println("mget获取的值为 " + jedis.mget("append"));
System.out.println("mget获取的值为 " + jedis.mget("append1"));
System.out.println("mget获取的值为 " + jedis.mget("append8"));
mget获取的值为 [1234567]
mget获取的值为 [null]
mget获取的值为 [null]
MSET
mset用于批量设置value。
Jedis jedis = new Jedis("127.0.0.1", 6379);
System.out.println(jedis.mset("append","89","append2","123"));
System.out.println("append对应的值 " + jedis.get("append"));
System.out.println("append2对应的值 " + jedis.get("append2"));
OK
append对应的值 89
append2对应的值 123
MSETNX
msetnx用于批量set新值到新的key中,若set的key值已存在则整个set命令都不会成功。如果msetnx命令执行成功则返回1失败返回0.
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.mset("append", "89", "append2", "123");
System.out.println(jedis.msetnx("append", "89", "append2", "123", "append3", "123"));
System.out.println(jedis.msetnx("append3", "89", "append4", "123", "append5", "123"));
0
1
SET
set命令用于更新value。
Jedis jedis = new Jedis("127.0.0.1", 6379);
System.out.println("set执行的结果 " + jedis.set("append", "12345"));
set执行的结果 OK
SETEX
setex用于设置key对应的value并指定key过期的时间其中过期时间以秒记。
Jedis jedis = new Jedis("127.0.0.1", 6379);
System.out.println("setEx执行的结果 " + jedis.setex("append", 1, "12345"));
setEx执行的结果 OK
SETNX
setnx命令与msetnx相似,当key不存在是创建该key并设置value当key存在则不做任何操作。setnx操作执行成功返回1失败返回0。
Jedis jedis = new Jedis("127.0.0.1", 6379);
System.out.println("setnx执行结果 " + jedis.setnx("append", "123"));
System.out.println("setnx执行结果 " + jedis.setnx("append", "456"));
System.out.println("setnx返回结果 " + jedis.get("append"));
setnx执行结果 1
setnx执行结果 0
setnx返回结果 123
SETRANGE
setrange用于在原有value基础上根据offset插入value。如果offset超出原来value则在之前的value后补0直至达到offset然后再执行命令。
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.set("append1", "123");
System.out.println("setRange执行结果 " + jedis.setrange("append1", 1, "new"));
System.out.println("setRange返回结果 " + jedis.get("append1"));
System.out.println("setRange执行结果 " + jedis.setrange("append1", 10, "new2"));
System.out.println("setRange返回结果 " + jedis.get("append1"));
setRange返回结果 1new
setRange执行结果 14
setRange返回结果 1new
STRLEN
strlen用于返回当前key对应value的长度,若key不存在则返回0.
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.set("append1", "12345566");
System.out.println("strlen执行结果 " + jedis.strlen("append1"));
strlen执行结果 8