??????Redis 數(shù)據(jù)類型
Redis支持5種數(shù)據(jù)類型:
string(字符串)钾虐、hash(哈希)噪窘、list(列表)、set(集合)禾唁、zset(有序集合)
本段介紹一下list(列表)效览。
Redis 列表(List)
Redis列表是簡(jiǎn)單的字符串列表,按照插入順序排序荡短。你可以添加一個(gè)元素到列表的頭部(左邊)或者尾部(右邊)
1丐枉、LPUSH key value1 [value2] 將一個(gè)或多個(gè)值插入到列表頭部
127.0.0.1:6379[1]> lpush list_key value1 value2
(integer) 2
2、LPUSHX key value 將一個(gè)值插入到已存在的列表頭部
127.0.0.1:6379[1]> lpushx list_key value3 value4
(error) ERR wrong number of arguments for 'lpushx' command
127.0.0.1:6379[1]> lpushx list_key value3
(integer) 3
3掘托、RPUSH key value1 [value2] 在列表中添加一個(gè)或多個(gè)值
127.0.0.1:6379[1]> rpushx list_key value4
(integer) 4
127.0.0.1:6379[1]> lrange list_key 0 10
1) "value3"
2) "value2"
3) "value1"
4) "value4"
4瘦锹、 RPUSHX key value 為已存在的列表添加值
127.0.0.1:6379[1]> rpush list_key value5 value6
(integer) 6
127.0.0.1:6379[1]> lrange list_key 0 10
1) "value3"
2) "value2"
3) "value1"
4) "value4"
5) "value5"
6) "value6"
5、LLEN key 獲取列表長(zhǎng)度
127.0.0.1:6379[1]> llen list_key
(integer) 6
6闪盔、LINDEX key index
通過(guò)索引獲取列表中的元素
127.0.0.1:6379[1]> lrange list_key 0 10
1) "value3"
2) "value2"
3) "value1"
4) "value4"
5) "value5"
6) "value6"
127.0.0.1:6379[1]> lindex list_key 5
"value6"
下標(biāo)從 0 開(kāi)始
7弯院、 LINSERT key BEFORE|AFTER sourceValue targetValue
在列表的元素前或者后插入元素
127.0.0.1:6379[1]> linsert list_key before value2 value7
(integer) 7
127.0.0.1:6379[1]> lrange list_key 0 10
1) "value3"
2) "value7"
3) "value2"
4) "value1"
5) "value4"
6) "value5"
7) "value6"
8、LRANGE key start stop
獲取列表指定范圍內(nèi)的元素
127.0.0.1:6379[1]> lrange list_key 0 10
1) "value3"
2) "value7"
3) "value2"
4) "value1"
5) "value4"
6) "value5"
7) "value6"
9泪掀、LSET key index value 通過(guò)索引設(shè)置列表元素的值
127.0.0.1:6379[1]> lrange list_key 0 10
1) "value3"
2) "value7"
3) "value2"
4) "value1"
5) "value4"
6) "value5"
7) "value6"
127.0.0.1:6379[1]> lset list_key 5 value8
OK
127.0.0.1:6379[1]> lrange list_key 0 10
1) "value3"
2) "value7"
3) "value2"
4) "value1"
5) "value4"
6) "value8"
7) "value6"
設(shè)置之后听绳, 會(huì)將原來(lái)的值替換掉value5->value8
10、LTRIM key start stop
對(duì)一個(gè)列表進(jìn)行修剪(trim)异赫,就是說(shuō)椅挣,讓列表只保留指定區(qū)間內(nèi)的元素,不在指定區(qū)間之內(nèi)的元素都將被刪除塔拳。
127.0.0.1:6379[1]> lrange list_key 0 10
1) "value3"
2) "value7"
3) "value2"
4) "value1"
5) "value4"
6) "value8"
7) "value6"
127.0.0.1:6379[1]> ltrim list_key 3 5
OK
127.0.0.1:6379[1]> lrange list_key 0 10
1) "value1"
2) "value4"
3) "value8"
取子集:下標(biāo)為3到5的集合鼠证。 包含list_key[5]
11、LPOP key 移出并獲取列表的第一個(gè)元素
127.0.0.1:6379[1]> lrange list_key 0 10
1) "value1"
2) "value4"
3) "value8"
127.0.0.1:6379[1]> lpop list_key
"value1"
12靠抑、rpop pkey 移出并獲取列表的最后一個(gè) 元素
127.0.0.1:6379[1]> rpop list_key
"value8"
13量九、RPOPLPUSH source destination
移除列表的最后一個(gè)元素,并將該元素添加到另一個(gè)列表并返回
127.0.0.1:6379[1]> rpoplpush list_key list_new_key
"value4"
127.0.0.1:6379[1]> lrange list_key 0 10
(empty list or set)
127.0.0.1:6379[1]> lrange list_new_key 0 10
1) "value4"
14、BLPOP key1 [key2 ] timeout
移出并獲取列表的第一個(gè)元素荠列, 如果列表沒(méi)有元素會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止类浪。
127.0.0.1:6379[1]> blpop list_key 1000
1) "list_key"
2) "value9"
返回一個(gè)含有兩個(gè)元素的列表,第一個(gè)元素是被彈出元素所屬的 key 弯予,第二個(gè)元素是被彈出元素的值戚宦。
15 BRPOP key1 [key2 ] timeout
移出并獲取列表的最后一個(gè)元素, 如果列表沒(méi)有元素會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止锈嫩。
127.0.0.1:6379[1]> brpop list_key 1000
1) "list_key"
2) "value11"
16 BRPOPLPUSH source destination timeout
從列表中彈出一個(gè)值受楼,將彈出的元素插入到另外一個(gè)列表中并返回它; 如果列表沒(méi)有元素會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止呼寸。
127.0.0.1:6379[1]> brpoplpush list_key list_new_key 1000
"value10"
127.0.0.1:6379[1]> lrange list_key 0 -1
(empty list or set)
127.0.0.1:6379[1]> lrange list_new_key 0 -1
1) "value10"
2) "value4"
上一篇:Redis學(xué)習(xí)之路(四)-hash(哈希)的操作命令???????????下一篇: 暫無(wú)