Set與getrange命令
一個鍵最多存儲512MB
語法:SET key value [EX seconds] [PX milliseconds] [NX|XX]
EX seconds:設置鍵的key的過期時間SET key value EX seconds -- SETEX
PX milliseconds:以毫秒的形式設置過期時間SET key value PX milliseconds--PSETEX
NX:只有鍵不存在的時候纔可以設置成功SET key value NX--SETNX
XX:只有key已經存在的時候纔可以設置
SET test16 'this is a test16' EX 100
SET test17 'this is a test17' PX 20000
SET test18 'this is a test18' NX
SET test18 'this is a test18888' XX
SET test19 'this is a test19' EX 100 NX
SET test20 'this is a test20' EX 100 PX 300000 NX
SET testStr1 'this is a test'
注意:如果key存在,同名會產生覆蓋
GETRANGE:返回字符串中一部分
語法:GETRANGE key start end
GETRANGE testStr2 0 4
GETRANGE testStr2 0 -3
GETRANGE testStr2 -4 -2
GETRANGE testStr2 0 1000
LLEN和LRANGE
LLEN:得到列表的長度
語法:LLEN key
LLEN myList2 (得到列表myList2的長度爲2)
LLEN myList112 (因爲myList112 列表不存在,所以返回的是0)
LRANGE:獲取列表片段
語法:LRANGE key start stop (start是起始點,stop是結束點,獲取起始點和結束點中間這部分的片段。)
LRANGE myList1 0 -1 (獲取所有元素,其中0表示列表的第一個元素,-1表示列表的最後一個元素。)
LRANGE myList1 0 0 ( 獲取列表的第一個元素“e”)
LRANGE myList1 0 2 ( 獲取列表的前三個元素“e”“d”“c”)
LRANGE myList1 -3 -1 ( 獲取列表的最後三個元素“test2”“test3”“test3”)
LRANGE myList1 100 3(因爲start下標‘100’比列表的最大下標end ‘3’大,所以返回的空列表)
LRANGE myList1 0 1000(因爲myList1列表的長度爲10,即使stop比列表長度大,也依然返回到列表的末尾,所以還是返回myList1中的十個元素。)
LRANGE myList1 3 1000(如果stop比列表長度大,返回到列表的末尾,不能說是整個列表,因爲起始點不一定是列表的第一個元素,我們可以從列表的第四個元素開始。)
注意:
如果start下標比列表的最大下標end大,返回的空列表
如果stop比列表長度大,返回到列表的末尾
RPUSH:向列表右端添加元素
(一次添加一個或多個都可以,R代表Right)
語法:RPUSH key value ...
RPUSH myList1 test1 test2 test3 (向myList1列表中添加三個元素分別爲test1、test2 以及test3)
LRANGE myList1 0 -1 (這時,我們再查看一下列表元素。我們可以看出它先在列表右端插入test1,然後插入test2,最後插入test3,這樣的形式)
RPUSH myList1 test3 test4 (再來添加一個重複元素test3 ,也是可以的。)
LRANGE myList1 0 -1 (這時,我們再查看一下列表元素。可以看到即使是重複的元素也可以添加在同一個列表中。)
LPUSHX:向列表頭部添加元素,只有key存在再來添加
語法:LPUSHX key value
注意:一次只能添加一個值
EXISTS myList2 (看myList2 是否存在,存在返回1,不存在返回0。)
LPUSHX myList2 a (向列表myList2 頭部添加元素a,返回0表示添加不成功。)
LRANGE myList2 0 -1 (查看myList2 列表元素,返回empty list or set,表示列表元素爲空。)
EXISTS myList2 (我們還可以查看myList2 是否存在,存在返回1,不存在返回0。這就證明LPUSHX只能向存在的列表來添加元素,如果列表不存在,它不會先自動創建列表。)
LPUSH myList2 a (因爲它不存在,所以先執行創建myList2這個列表的操作,再將a這個元素插入到我們的列表myList2 的左端。成功則返回列表的長度1,證明這個列表裏面有1個元素。)
LPUSHX myList2 b (這時,再向一個已存在的列表myList2中添加元素,就可以成功了。)
LRANGE myList2 0 -1 (我們再來得到一下myList2的元素)
RPUSHX:向列表尾部添加元素,只有key存在再來添加
語法:RPUSHX key value
注意:一次只能添加一個值,它的用法和LPUSHX一樣
LINDEX:獲得指定索引元素的值
語法:LINDEX key index
LINDEX myList2 3 (獲得myList2 列表中索引爲3的元素的值)
LINDEX myList2 3 5 (注意LINDEX 後面只能跟一個index,否則會報錯。)
LINDEX myList2 9 (獲得myList2 列表中索引9的元素的值)
LINDEX myList2 -3 (獲得myList2 列表中索引爲-3,也就是說從後往前數的第三個元素的值。)
LINDEX myList2 1000 (獲得myList2 列表中索引爲1000的元素的值,因爲索引超出了列表的範圍,所以它返回的是nil。)
LSET:設置指定索引元素的值
語法:LSET key index value
LSET myList2 0 king (設置myList2 列表中第一個元素的值爲‘king’)
LRANGE myList2 0 0(這時我們再來獲取myList2 的第一個元素就變成了king)
LSET myList22 0 king(對於一個不存在的列表myList22進行設置,會報錯。)
LSET myList22 1000 king(超出列表索引範圍也會報錯)
摘自http://www.maiziedu.com/wiki/redis/list2/