六、redis之set

shigp1發表於2024-10-03

Redis集合是成員的無序集合。可以用來儲存唯一的成員。

注意:對於以下的命令,涉及刪除成員的,如果集合中的所有元素都被移除,則集合會被刪除。如果集合原先不存在,被當作空集合。

SADD

SADD key member [member ...]

sadd命令將一系列成員新增到set中。

SMEMBERS

SMEMBERS key

smembers列出set中的所有成員。如果set成員很多,會阻塞redis服務,所以在生產環境慎用。

SISMEMBER

SISMEMBER key member

sismember判斷成員是否屬於set集合。

SMISMEMBER

SMISMEMBER key member [member ...]

smismember判斷多個成員是否屬於set集合。

SCARD

SCARD key

scard返回集合中的成員數量。

SMOVE

SMOVE source destination member

SMOVE將成員從slource集合移除,並新增到destination集合。

SPOP

SPOP key [count]

spop隨機從set中移除並返回count個成員。

SRANDMEMBER

SRANDMEMBER key [count]

srandmember從set中隨機返回count個成員。

SREM

SREM key member [member ...]

srem從set中移除指定的多個成員。

SSCAN

SSCAN key cursor [MATCH pattern] [COUNT count]

SSCAN和hscan的用法類似,區別的是返回的資料型別不同。

在高中時,數學的第一章就是集合。那麼redis中的集合有沒有數學中的集合涉及的運算呢?有的。最後看下集合的運算。

交集

數學中的交集就是兩個集合共同的成員組成的集合。

SINTER key [key ...]

sinter返回多個集合的交集。

SINTERSTORE destination key [key ...]

SINTERSTORE將多個集合的交集儲存到destination集合中。

SINTERCARD numkeys key [key ...] [LIMIT limit]

SINTERCARD返回多個交集中成員數量。limit限制交集的成員數,對於大集合可以快速返回。

差集

數學中的差集就是一個集合移除另一集合中的成員後剩餘的成員組成的新集合。

SDIFF key [key ...]
SDIFFSTORE destination key [key ...]

SDIFF set1 set2的結果是set1中的成員移除set2中的所有成員後剩餘的成員組成的新集合。SDIFFSTORE將差集的結果儲存到destination集合中。

並集

並集就是將多個集合的所有成員組成新的集合。

SUNION key [key ...]
SUNIONSTORE destination key [key ...]

SUNION會將集合的結果返回,SUNIONSTORE會將集合的結果儲存到destination集合。

可以看到如果destination集合原先存在資料,SUNIONSTORE會覆蓋原先的資料。SDIFFSTORE,SINTERSTORE命令也一樣

相關文章