1. 程式人生 > >Redis使用匯總1 string命令

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