Redis系列學習筆記5 集合

2021-07-11 23:56:12 字數 2514 閱讀 5051

儲存多個各不相同的元素

redis的集合以無序的方式儲存多個各不相同的元素。使用者可以快速地向集合新增元素,或者從集合裡面刪除元素,也可以對多個集合進行集合運算操作,比如計算並集、交集和差集。

sadd key element [element …]

將乙個或多個元素新增到給定的集合裡面,已經存在於集合的元素會自動忽略,命令返回新新增到集合的元素數量。

srem key element [element …]

移除集合中的乙個或者多個元素,不存在於集合的元素會自動被忽略,命令返回存在並且被移除的元素數量。

sismember key element

檢查給定的元素是否存在於集合,存在的話返回1;如果元素不存在,或者給定的鍵不存在,那麼返回0.

scard key

返回集合包含的元素數量(也即是集合的基數)

smembers key

返回集合包含的所有元素。當集合的元素數量比較大時,執行該命令有可能會造成伺服器阻塞。

api說明

操作vote(key, client)

將投票結果記錄到給定的鍵

使用集合來儲存所有已投票的人

vote.cast(user)

使用者進行投票。

使用sadd將使用者新增到集合裡面。

vote.undo(user)

取消使用者的投票。

使用srem將使用者從集合中移除。

vote.is_voted(user)

檢查使用者是否已投票。

使用sismember檢查使用者是否存在於集合。

vote.voted_members()

返回所有已投票使用者。

呼叫smembers。

vote.voted_count()

返回已投票使用者的數量。

呼叫scard。

api說明

操作tag(key, client)

使用指定的鍵來儲存某種東西的標籤。

使用集合來儲存標籤。

tag.add(*tags)

新增任意多個標籤。

呼叫sadd命令。

tag.remove(*tags)

移除任意多個標籤

呼叫srem命令

tag.is_include(tag)

檢查某個標籤是否存在。

呼叫sismember命令

tag.get_all()

返回所有標籤。

呼叫smembers命令。

tag.count()

返回標籤的數量。

呼叫scard命令。

spop key

隨機地從集合中移除並返回乙個元素

srandmember key [count]

如果沒有給定可選的count引數,那麼命令隨機地返回集合中的乙個元素。

如果給定了count引數,那麼:

api說明

操作loterry(key, client)

使用指定的鍵來儲存參與**的人。

使用集合來儲存參與**的人。

loterry.add_player(*user)

新增參與者

呼叫sadd命令

loterry.get_all_players()

返回所有參與者

呼叫smembers命令。

loterry.player_count()

返回參與者數量

呼叫scard命令

loterry.draw(n)

抽出n個獲獎者。

呼叫srandmember命令。

sdiff key [key …]

計算所有給定集合的差集,並返回結果。

sdiffstore destkey key [key …]

計算所有給定集合的差集,並將結果儲存到destkey。

sinter key [key …]

計算所有給定集合的交集,並返回結果。

sinterstore destkey key [key …]

計算所有給定集合的交集,並將結果儲存到destkey。

sunion key [key …]

計算所有給定集合的交並集,並返回結果。

sunionstore destkey key [key …]

計算所有給定集合的並集,並將結果儲存到destkey。

api說明

操作itemfilter(client)

指定客戶端。

itemfilter.add_option(item_set)

新增乙個篩選條件選項,item_set集合儲存了所有符合該選項的商品。

把item_set新增到乙個python集合裡面,等待進行篩選

itemfilter.result()

根據目前已給定的選項進行篩選,並返回符合條件的商品。

使用sinter,對所有已給定選項的集合進行計算。

itemfilter.store_result(key)

根據目前已給定的選項進行篩選,並把篩選結果儲存到給定的鍵裡面。

使用sinterstore,計算並儲存交集結果

redis學習筆記四 集合

1 新增 刪除元素 sadd key member member.srem key member member.新增的時候,如果元素不存在自動建立,如果存在會自動忽略,不進行新增 2 獲取集合中的所有元素 smembers key 3 判斷元素是否在集合中 sismember key member ...

Redis系列 6 集合(Set)結構

集合間的操作 內部編碼 適合場景 redsi裡的集合叫set,和其他語言有一些不同。在資料結構上,集合裡的資料原則上是沒有先後的。就像去超市買了一大袋東西,袋子就是乙個集合,裡面的東西也沒什麼必然的聯絡吧?下面所有描述裡 都是必需引數,是可選引數 設定值sadd 可以新新增乙個集合並一次新增多個元素...

redis學習筆記 二 集合型別

一 集合型別的常用操作是向集合中加入或刪除元素 判斷某個元素是否存在。1.增加 刪除元素 sadd srem key member member redis 127.0.0.1 6379 sadd letters a integer 1 redis 127.0.0.1 6379 sadd lette...