標籤:blog io ar sp log on c ad r
sets類型及操作
set是集合,它是string類型的無序集合。通過hash table實現,添加、刪除、尋找的複雜度都是0(1)。對集合我們可以實現取交際、差集並集。通過這些操作我們可以實現SNS中的好友推薦和blog的tag(標籤)功能
sadd
向集合中添加元素,成功返回1,失敗返回0,重複值添加為失敗
例如:
sadd myset1 hello
smembers
查看集合中的元素
例如:
smembers myset1
scard
查看集合中的元素個數
例如:
scard myset1
sismember
測試元素在不在集合中,存在返回1,不存在返回0
例如:
sismember myset1 two
srem
刪除集合中的元素,成功返回1,失敗返回0
例如:
srem myset1 hello
spop
隨機從集合中彈出一個元素,並刪除,返回彈出元素的值
例如:
spop myset1
sdiff
返回第一個集合在第二個集合中的差集部分
例如:
myset1 中有 three two
myset2 中有 two one
sdiff myset1 myset2 //不會返回 three one 只會返回 three
sdiffstore
返回第一個集合在第二個集合中的差集部分,並將結果儲存到另一個集合中
例如:
sdiffstore myset4 myset2 myset3 //把myset2在myset3中的差集儲存在myset4中
sinter
返回所有集合的交集
例如:
sinter myset1 myset2
sinterstore
返回所有集合的交集,並儲存,用法同sdiffstore
sunion
返回所有集合的並集
例如:
sunion myset1 myset2
sunionstore
返回所有集合的並集,並儲存,用法同sdiffstore
smove
把第一個集合中的指定元素,移動到第二個集合
例如:
smove myset2 myset1 three
srandmember
隨機返回集合中的一個元素,不刪除元素
sorted sets
是對set的一個升級版本,它在set的基礎上增加了一個順序屬性,這個屬性在添加修改元素的時候可以指定,每次指定後,zset會自動重新按新的值調整順序。
zadd
向集合中添加元素,member,score用於排序,如果該元素存在,則更新其順序
例如:
zadd myzset1 1 one
zrange
查看zset集合中的元素
例如:
zrange myzset1 0 -1 withscores //withscores 輸出順序號,不是必須
zrem
刪除值為指定的元素
例如:
zrem myset1 two
zincrby
向集合中添加元素,如果元素已經存在,則該元素的score增加increment的值,否則向該集合中添加該元素,其score的值為increment
例如:
zincrby myzset1 2 four
zrank
返回集合中元素的排名,按score從小到大的順序,即下標,和數組一樣從0開始
例如:
zrank myzset1 four
zrevrank
和zrank一樣,不同是從大到小排序
zrevrange
返回集合中的結果,降序排序
例如:
zrevrange myzset1 0 -1 withscores
zrangebyscore
返回指定返回的元素
例如
zrangebyscore myzset1 2 3 withscores
zcount
返回集合中score在給定區間的元素的數量
例如:
zcount myzset1 2 4
zremrangebyrank
刪除集合中指定索引範圍內的元素
例如:
zremrangebyrank myzset1 1 3
zremrangebyscore
刪除集合中指定score範圍內的元素
例如:
zremrangebyscore myzset1 1 2
redis sets類型及操作