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

2021-09-27 10:38:59 字數 583 閱讀 2180

快取是提高web專案運作效率的高效催化劑,合理的使用快取,能讓你的專案速度飛起來,?。

業務**的分層抽象可能會將快取層封裝起來,導致無法顯式的過期/清理快取資料,我遇到的情況就是這樣,所以借助於redis的set型別來記錄快取資料的鍵值,實現可以手動過期相關資料的功能。

redis 的 set 是 string 型別的無序集合。集合成員是唯一的,因此可以避免list型別的資料重複。

相關操作

把memeber加入到名為key的集合中
獲取名為key的集合的所有成員
檢視名為key的集合的成員數量
判斷member 是否是名為key的集合的一員
在寫入快取或者查詢快取的時候,記錄一下快取的名稱cache_key,為了避免記錄快取資料的cache-keys成為殭屍資料,務必設定 ttl,保持和cache的時間一致即可。

這樣在需要清理快取的時候, 獲取cache-keys的所有資料,逐個呼叫刪除即可完成快取資料的清理。

2019-09-26

Redis的有序集合set

redis 有序集合和集合一樣也是string型別元素的集合,且不允許重複的成員。不同的是每個元素都會關聯乙個double型別的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。有序集合的成員是唯一的,但分數 score 卻可以重複。集合是通過雜湊表實現的,所以新增,刪除,查詢的複雜度...

redis集合set操作

sadd key value1 value2 向集合中增加元素 smembers key 檢視集合中的元素,由於集合的無序性,檢視的元素可能和插入式順序不一樣 srem value1 value2.刪除集合中名為value1,value2.的元素 返回值 忽略不存在的元素,返回真正刪除元素的個數 s...

redis 有序set集合

我們光set集合中如果儲存元素就直接 小明,小紅,小張有序set集合則是每個元素都需要手動賦予乙個分數 5000 小明,1000 小紅,500 小張而有序set集合預設是從小到大排序的 我們發現當集合倒序時就像是乙個排行榜 5000 小明 1000 小紅 500 小張 所以有序set常常用來做排行榜...