目錄
List類型
什么是雙向鏈表呢?
List類型的特征:
List的常用命令
LPUSH和RPUSH的區(qū)別:
LPOP和RPOP的區(qū)別:
LPUSH和RPUSH的使用
LPOP和RPOP的使用
LRANGE key star?end:返回一段距離范圍內(nèi)所有的元素
BLPOP和BRPOP:它在沒有該元素的時(shí)候會(huì)等待一段時(shí)間,而不是直接返回nil
問題1:如何利用List結(jié)構(gòu)模擬一個(gè)棧?
問題2:如何利用List結(jié)構(gòu)模擬一個(gè)隊(duì)列?
問題3:如何利用List結(jié)構(gòu)模擬一個(gè)阻塞隊(duì)列?
Set類型
Set類型的常用命令(member代表著元素)
SADD key member:向set中添加一個(gè)或者多個(gè)元素
SREM key member:刪除set中的指定元素
SCARD key:返回set中元素的個(gè)數(shù)
SISMEMBER key member:判斷元素是否存在在key中
SMEMBERL key:獲取set中的所有元素
SINTER 和 SDIFF 和 SUNION 是實(shí)現(xiàn)Set類型的交集、差集、并集操作
Set類型交集、差集、并集命令的練習(xí)
SortedSet類型
SortedSet類型的特征:
SortedSet類型的常用命令:
SortedSet類型命令練習(xí)
插入學(xué)生得分?jǐn)?shù)據(jù):
刪除Tom同學(xué):
獲取Amy同學(xué)的分?jǐn)?shù):
獲取Rose同學(xué)的排名:
查詢80分以下有幾個(gè)同學(xué):
給Amy同學(xué)添加2分:
查出成績前3名的同學(xué):(倒序查詢)
查出成績在80分以下的所有同學(xué):
List類型
什么是雙向鏈表呢?
雙向鏈表(Doubly Linked List)是一種常見的鏈表數(shù)據(jù)結(jié)構(gòu),與單向鏈表不同,它的每個(gè)節(jié)點(diǎn)除了包含指向下一個(gè)節(jié)點(diǎn)的指針外,還包含一個(gè)指向前一個(gè)節(jié)點(diǎn)的指針。這使得雙向鏈表可以在兩個(gè)方向上遍歷鏈表,從頭部到尾部,或者從尾部到頭部。
跟java中的Linkedlist十分的類似:?
List類型的特征:
List的常用命令
LPUSH和RPUSH的區(qū)別:
一個(gè)是從列表的左側(cè)開始插入,一個(gè)是從列表的右側(cè)開始插入
LPOP和RPOP的區(qū)別:
一個(gè)是從列表的左側(cè)開始取出,一個(gè)是從列表的右側(cè)開始取出
LPUSH和RPUSH的使用
192.168.1.209:6379> LPUSH users 1 2 3
(integer) 3
192.168.1.209:6379> RPUSH users 4 5 6
(integer) 6
192.168.1.209:6379>
LPOP和RPOP的使用
192.168.1.209:6379> LPOP users 1
1) "3"
192.168.1.209:6379> RPOP users 1
1) "6"
192.168.1.209:6379>
LRANGE key star?end:返回一段距離范圍內(nèi)所有的元素
192.168.1.209:6379> LRANGE users 1 2
1) "1"
2) "4"
192.168.1.209:6379> LRANGE users 2 3
1) "4"
2) "5"
192.168.1.209:6379> LRANGE users 0 3
1) "2"
2) "1"
3) "4"
4) "5"
192.168.1.209:6379>
BLPOP和BRPOP:它在沒有該元素的時(shí)候會(huì)等待一段時(shí)間,而不是直接返回nil
192.168.1.209:6379> BLPOP users2 100 # 等待了18.5秒,當(dāng)從其他機(jī)器上插入后,出現(xiàn)數(shù)據(jù)
1) "users2"
2) "clay"
(18.50s)
127.0.0.1:6379> LPUSH users2 clay # 添加了users2這個(gè)key
(integer) 1
127.0.0.1:6379>
192.168.1.209:6379> BLPOP users3 10 # 不存在該key(users3)
(nil)
(10.06s)
192.168.1.209:6379>
問題1:如何利用List結(jié)構(gòu)模擬一個(gè)棧?
棧的入口和出口都在同一邊,而且必須先進(jìn)入數(shù)據(jù),才能輸出數(shù)據(jù)
因此需要我們的入口和出口都在同一邊,只用LPUSH和LPOP來輸入輸出數(shù)據(jù),或者是只使用RPUSH和RPOP來輸入輸出數(shù)據(jù)
問題2:如何利用List結(jié)構(gòu)模擬一個(gè)隊(duì)列?
隊(duì)列的入口和出口不在同一邊
因此需要我們的入口和出口不在同一邊,只用LPUSH和RPOP來輸入輸出數(shù)據(jù),或者是只使用RPUSH和LPOP來輸入輸出數(shù)據(jù)
問題3:如何利用List結(jié)構(gòu)模擬一個(gè)阻塞隊(duì)列?
首先它是隊(duì)列,因此入口和出口不在同一邊
而且出隊(duì)的時(shí)候必須采用BLPOP和BRPOP來輸出,形成阻塞的效果
Set類型
Set類型的常用命令(member代表著元素)
SADD key member:向set中添加一個(gè)或者多個(gè)元素
192.168.1.209:6379> SADD s1 a b c
(integer) 3
192.168.1.209:6379>
SREM key member:刪除set中的指定元素
192.168.1.209:6379> SREM s1 b
(integer) 1
192.168.1.209:6379>
SCARD key:返回set中元素的個(gè)數(shù)
192.168.1.209:6379> SCARD s1
(integer) 2
192.168.1.209:6379>
SISMEMBER key member:判斷元素是否存在在key中
192.168.1.209:6379> SISMEMBER s1 a
(integer) 1
192.168.1.209:6379> SISMEMBER s1 b
(integer) 0
192.168.1.209:6379>
SMEMBERL key:獲取set中的所有元素
192.168.1.209:6379> SMEMBERS s1
1) "a"
2) "c"
192.168.1.209:6379>
SINTER 和 SDIFF 和 SUNION 是實(shí)現(xiàn)Set類型的交集、差集、并集操作
Set類型交集、差集、并集命令的練習(xí)
SortedSet類型
SortedSet類型的特征:
SortedSet類型的常用命令:
?注:詳細(xì)的SortedSet類型命令我們能通過命令行的help @sortedset來查看
SortedSet類型命令練習(xí)
插入學(xué)生得分?jǐn)?shù)據(jù):
192.168.1.209:6379> ZADD stus 85 Jack 89 Lucy 82 Rose 95 Tom 78 Jerry 92 Amy 76 Miles
(integer) 7
192.168.1.209:6379>
文章來源:http://www.zghlxwxcb.cn/news/detail-703451.html
刪除Tom同學(xué):
192.168.1.209:6379> ZREM stus Tom
(integer) 1
192.168.1.209:6379>
文章來源地址http://www.zghlxwxcb.cn/news/detail-703451.html
獲取Amy同學(xué)的分?jǐn)?shù):
192.168.1.209:6379> ZSCORE stus Amy
"92"
192.168.1.209:6379>
獲取Rose同學(xué)的排名:
192.168.1.209:6379> ZRANK stus Rose
(integer) 2
192.168.1.209:6379>
查詢80分以下有幾個(gè)同學(xué):
192.168.1.209:6379> ZCOUNT stus 0 80
(integer) 2
192.168.1.209:6379>
給Amy同學(xué)添加2分:
192.168.1.209:6379> ZINCRBY stus 2 Amy
"94"
192.168.1.209:6379>
查出成績前3名的同學(xué):(倒序查詢)
192.168.1.209:6379> ZREVRANGE stus 0 2
1) "Amy"
2) "Lucy"
3) "Jack"
192.168.1.209:6379>
查出成績在80分以下的所有同學(xué):
192.168.1.209:6379> ZRANGEBYSCORE stus 0 80
1) "Miles"
2) "Jerry"
192.168.1.209:6379>
到了這里,關(guān)于Redis List類型命令 - Set類型命令 - SortedSet類型命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!