c#可以做網(wǎng)站嗎產(chǎn)品推廣方案怎么寫
上一篇文章我們講了Redis的10大應(yīng)用場(chǎng)景,這一篇文章就針對(duì)Redis的常用數(shù)據(jù)結(jié)構(gòu)進(jìn)行一個(gè)說明,通過示例的形式演示每一種數(shù)據(jù)結(jié)構(gòu)如何使用。
當(dāng)涉及Redis的數(shù)據(jù)操作時(shí),不同數(shù)據(jù)類型對(duì)應(yīng)的不同數(shù)據(jù)結(jié)構(gòu),如下就對(duì)5大常用的數(shù)據(jù)類型進(jìn)行演示。
1、字符串(String)
-
SET key value
:適用于設(shè)置單個(gè)值,比如設(shè)置用戶的姓名或者用戶的年齡等。SET username "John"
-
GET key
:適用于獲取單個(gè)值,比如獲取用戶的姓名或者用戶的年齡等。GET username
-
DEL key
:適用于刪除單個(gè)鍵值對(duì),比如刪除用戶的姓名或者用戶的年齡等。DEL username
2、哈希(Hash)
-
HSET key field value
:適用于存儲(chǔ)對(duì)象的屬性,比如存儲(chǔ)用戶對(duì)象的各個(gè)屬性。HSET user:id:1001 name "John"
-
HGET key field
:適用于獲取對(duì)象的指定屬性,比如獲取用戶對(duì)象的姓名屬性。HGET user:id:1001 name
-
HDEL key field1 field2 ...
:適用于刪除對(duì)象的指定屬性,比如刪除用戶對(duì)象的姓名屬性。HDEL user:id:1001 name
3、列表(List)
3.1、創(chuàng)建列表
可以使用LPUSH
、RPUSH
等命令向列表的頭部或尾部添加元素,從而創(chuàng)建一個(gè)新的列表。
LPUSH mylist value1 value2 value3 # 向列表頭部添加元素
RPUSH mylist value4 value5 value6 # 向列表尾部添加元素
3.2、獲取列表元素
通過LRANGE
命令可以獲取列表指定范圍內(nèi)的元素,其中0
表示列表的第一個(gè)元素,-1
表示列表的最后一個(gè)元素。
LRANGE mylist 0 -1 # 獲取列表中所有元素
LRANGE mylist 0 2 # 獲取列表中前三個(gè)元素
3.3、彈出列表元素
通過LPOP
和RPOP
命令可以從列表頭部或尾部彈出一個(gè)元素,并返回彈出的元素。
LPOP mylist # 從列表頭部彈出一個(gè)元素
RPOP mylist # 從列表尾部彈出一個(gè)元素
3.4、獲取列表長度
通過LLEN
命令可以獲取列表的長度,即列表中元素的個(gè)數(shù)。
LLEN mylist # 獲取列表的長度
3.5、示例
假設(shè)我們有一個(gè)任務(wù)隊(duì)列,需要將任務(wù)按順序添加到隊(duì)列中,并且按照順序處理。
LPUSH task_queue task1 # 添加任務(wù)1到任務(wù)隊(duì)列頭部
LPUSH task_queue task2 # 添加任務(wù)2到任務(wù)隊(duì)列頭部
LPUSH task_queue task3 # 添加任務(wù)3到任務(wù)隊(duì)列頭部LRANGE task_queue 0 -1 # 獲取任務(wù)隊(duì)列中的所有任務(wù)RPOP task_queue # 從任務(wù)隊(duì)列尾部彈出一個(gè)任務(wù),表示任務(wù)被處理
4、集合(Set)
4.1、創(chuàng)建集合
在Redis中,可以使用SADD
命令向集合中添加元素,從而創(chuàng)建一個(gè)新的集合。
SADD myset member1 member2 member3 # 向集合中添加多個(gè)成員
4.2、獲取集合成員
通過SMEMBERS
命令可以獲取集合中的所有成員。
SMEMBERS myset # 獲取集合中所有成員
4.3、判斷成員是否存在
通過SISMEMBER
命令可以判斷指定成員是否存在于集合中。
SISMEMBER myset member1 # 判斷成員1是否存在于集合中
4.4、移除集合成員
通過SREM
命令可以從集合中移除一個(gè)或多個(gè)成員。
SREM myset member1 member2 # 從集合中移除成員1和成員2
4.5、獲取集合基數(shù)
通過SCARD
命令可以獲取集合的基數(shù),即集合中成員的數(shù)量。
SCARD myset # 獲取集合的基數(shù)
4.6、獲取集合交集
通過SINTER
命令可以獲取多個(gè)集合的交集。
SADD set1 a b c # 集合1包含元素a、b、c
SADD set2 b c d # 集合2包含元素b、c、dSINTER set1 set2 # 獲取集合1和集合2的交集
4.7、示例
假設(shè)我們有一個(gè)社交網(wǎng)絡(luò)應(yīng)用,需要存儲(chǔ)用戶的好友列表,并且要求好友列表中不能有重復(fù)的用戶。
SADD user:1001:friends user:1002 # 用戶1001的好友列表中添加用戶1002
SADD user:1001:friends user:1003 # 用戶1001的好友列表中添加用戶1003
SADD user:1001:friends user:1004 # 用戶1001的好友列表中添加用戶1004SMEMBERS user:1001:friends # 獲取用戶1001的好友列表中的所有好友
5、有序集合(Sorted Set)
5.1、創(chuàng)建有序集合
可以使用ZADD
命令向有序集合中添加成員,同時(shí)為每個(gè)成員指定一個(gè)分?jǐn)?shù),從而創(chuàng)建一個(gè)新的有序集合。
ZADD mysortedset 1 member1 # 向有序集合中添加成員1,并設(shè)置其分?jǐn)?shù)為1
ZADD mysortedset 2 member2 # 向有序集合中添加成員2,并設(shè)置其分?jǐn)?shù)為2
ZADD mysortedset 3 member3 # 向有序集合中添加成員3,并設(shè)置其分?jǐn)?shù)為3
5.2、獲取有序集合成員
通過ZRANGE
命令可以按照分?jǐn)?shù)從小到大的順序獲取有序集合中指定范圍內(nèi)的成員。
ZRANGE mysortedset 0 -1 WITHSCORES # 獲取有序集合中所有成員及其分?jǐn)?shù)
ZRANGE mysortedset 0 2 WITHSCORES # 獲取有序集合中前三個(gè)成員及其分?jǐn)?shù)
5.3、獲取有序集合成員分?jǐn)?shù)
通過ZSCORE
命令可以獲取有序集合中指定成員的分?jǐn)?shù)。
ZSCORE mysortedset member1 # 獲取成員1在有序集合中的分?jǐn)?shù)
5.4、移除有序集合成員
通過ZREM
命令可以從有序集合中移除一個(gè)或多個(gè)成員。
ZREM mysortedset member1 member2 # 從有序集合中移除成員1和成員2
5.5、獲取有序集合基數(shù)
通過ZCARD
命令可以獲取有序集合的基數(shù),即有序集合中成員的數(shù)量。
ZCARD mysortedset # 獲取有序集合的基數(shù)
5.6、示例
假設(shè)我們有一個(gè)學(xué)生成績單,需要存儲(chǔ)學(xué)生的成績,并按照成績從高到低進(jìn)行排名。
ZADD student_scores 90 alice # 學(xué)生Alice的成績?yōu)?0
ZADD student_scores 85 bob # 學(xué)生Bob的成績?yōu)?5
ZADD student_scores 95 charlie # 學(xué)生Charlie的成績?yōu)?5ZRANGE student_scores 0 -1 WITHSCORES # 獲取學(xué)生成績單中所有學(xué)生及其成績
感覺整理的可以,《醉魚Java》你懂的😏