set類型
Set是集合,它是string類型的無序集合。
set是通過hash table 實現的,添加、刪除和尋找的複雜度都是0(1)。
對集合我們可以取並集、交集、差集。
sadd 向名稱為key的set中添加元素
sadd myset "hello"
smembers 查看集合
smembers myset
srem 刪除元素
srem myset "one" 返回1 刪除成功 返回0 刪除失敗
spop 隨機返回並刪除名稱為key的set中的一個元素
spop myset
sdiff 返回所有給定key與第一個key的差集
sdiff myset1 myset2 (以前面一個為標準)
sdiffstore 返回所有給定key與第一個key的差集,並將結果存為另外一個key.
sdiffstore myset3 myset1 myset2 # 將 myset1 myset2 的差集存到myset3裡面(以myset1為基準)
sinter 返回給定key的交集
sinter myset4 myset5
sinterstore 將交集儲存到另外一個集合 sinterstore myset6 myset1 myset2 (與sdiffstore類似)
sunion 並集
sunion myset1 myset2
sunionstore 取並集存到新的set
sunionstore myset7 myset1 myset2 #返回插入的元素個數
smove 從第一個key對應的set中移除member並添加到第二個對應的set中
smove myset2 myset7 three #成功返回1 失敗返回0
scard 查看集合的個數 scard myset2
sismember 測試member是否是名稱為key的set的元素
sismember myset2 two 是返回1 不是返回0
srandmember 隨機返回 (因為set無序)
srandmember myset7
sorted sets 類型
sorted set是set的一個升級版本,它在set的基礎上增加了一個順序屬性,這一屬性在添加修改元素的時候可以指定,
每次指定後,zset會自動重新按新的值調整順序,可以理解為由兩列的mysql,一列存value,一列存順序。
其中key理解為zset的名字.
zadd 添加元素
zadd myzset 1 "one"
zadd myzset 2 "two"
zadd myzset 3 "three"
zrange myzset 0 -1 withscores
這裡的0和-1代表的是索引 withscores 輸出順序號
zrem 刪除名稱為key的zset中的元素
zrem myzset two
zincrby 以指定值來增加(減少)順序 對數序號進行加減
如果在名稱為key的zset中,已經存在元素member,則該元素的sroce增加increment,
否則向該集合添加元素,其score的值為incrnment
zincrby myzset 2 one
再比如 four這個元素是不存在的
zrank 返回名稱為key的zset中的member元素的排名 (按score從小到大排序) 即下標
zrank myzset two
zrevrank 反轉 按照score從大到小排名 zrevrank myzset two
zrevrange 逆序 降序排序
zrevrange myzset 0 -1 withscores