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...