Redis使用匯總1 string命令
近期有空,彙總下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