redis快取資料庫 set集合操作

2021-10-10 23:09:46 字數 1446 閱讀 9852

redis的集合允許使用者將任意多個各個不相同的元素儲存到集合裡面,這些元素既可以是文字資料,也可以是二進位制資料。與列表相比,集合有以下兩個明顯的區別。

name對應的集合中新增元素

sadd(name,values)

獲取name對應的集合中元素個數

scard(name)

在第乙個name對應的集合中且不在其他name對應的集合的元素集合(求不同)

sdiff(keys, *args)

獲取第乙個name對應的集合中且不在其他name對應的集合,再將其新加入到dest對應的集合中

sdiffstore(dest, keys, *args)

獲取多乙個name對應集合的交集(求相同)

sinter(keys, *args)

獲取多乙個name對應集合的並集,再講其加入到dest對應的集合中

sinterstore(dest, keys, *args)

檢查value是否是name對應的集合的成員

sismember(name, value)

獲取name對應的集合的所有成員

smembers(name)

將某個成員從乙個集合中移動到另外乙個集合

smove(src, dst, value)

從集合的右側(尾部)移除乙個成員,並將其返回

spop(name)

從name對應的集合中隨機獲取 numbers 個元素

srandmember(name, numbers)

在name對應的集合中刪除某些值

srem(name, values)

獲取多乙個name對應的集合的並集

sunion(keys, *args)

獲取多乙個name對應的集合的並集,並將結果儲存到dest對應的集合中

sunionstore(dest,keys, *args)

同字串的操作,用於增量迭代分批獲取元素,避免記憶體消耗太大

sscan(name, cursor=0, match=none, count=none)

sscan_iter(name,match=none, count=none)

redis資料庫快取

使用redis作為快取,資料還需要存入資料庫中嗎?我的答案是 1redis只是快取,不是資料庫如mysql,所以redis中有的資料庫,mysql中一定有。2使用者請求先去請求redis,如果沒有,再去資料庫中去讀取。3redis中快取一些請求量比較大的資料 這些快取資料,mysql中一定也是有的 ...

redis資料庫set(集合)型別常用命令

1 向集合新增乙個或多個成員sadd keymember1 member2 2 獲取集合的成員數scard key3 返回給定所有集合的差集sdiff key1 key2 4 返回給定所有集合的差集並儲存在 destination 中sdiffstore destination key1 key2 ...

使用redis的set集合做快取統計

快取是提高web專案運作效率的高效催化劑,合理的使用快取,能讓你的專案速度飛起來,業務 的分層抽象可能會將快取層封裝起來,導致無法顯式的過期 清理快取資料,我遇到的情況就是這樣,所以借助於redis的set型別來記錄快取資料的鍵值,實現可以手動過期相關資料的功能。redis 的 set 是 stri...