golang中redis模糊刪除

2021-10-06 13:26:19 字數 718 閱讀 3246

當我們需要遍歷redis所有key或者指定模式的key時,首先想到的是keys命令,例如:keys*,但是當redis中key數量越大,keys 命令執行越慢,而且最重要的會阻塞伺服器,對單執行緒的redis來說,簡直是災難,所以生產環境建議不使用該命令

批量模糊刪除key

defer conn.close()

val, err := redis.strings(conn.do("keys", "*"+key+"*"))

conn.send("multi")

for i, _ := range val

_, err = redis.values(conn.do("exec"))

if err != nil

從redis2.8版本開始,官方提供了乙個新的命令scan來遍歷key(參見)

defer con.close()

//用於迴圈查詢key

iter := 0

var keys string

for else

} if iter == 0

} //開啟事務

con.send("multi")

for _, value := range keys

_, err = redis.values(con.do("exec"))

if err != nil

Redis模糊查詢

最近使用redis優化專案功能,其中有一部分為模糊查詢,找了很多帖子,也沒有找到很好的解決方案和思路,最終皇天不負有心人啊,終於讓我找到了!可以通過redis中keys命令進行獲取key值,具體命令格式 keys pattern 文中提到redis中允許模糊查詢的有3個萬用字元,分別是 其中 通配任...

redis 模糊刪除key

由於在我們的專案中使用spring cached和redis結合的方式對一部分資料做資料庫快取,當快取和資料庫資料不一致時 由於手動改資料庫引起 就得清空資料庫的快取,這就涉及到redis迷糊匹配刪除資料的情況發生。redis keys命令支援模式匹配,但是del命令不支援模式匹配,有時候需要根據一...

redis模糊刪除keys

redis模糊刪除keys 最近專案中遇到了乙個使用redis快取引發的顯示資料和資料庫中的資料不一致的問題,由於該redis不僅這個專案使用 別的專案還用到了這個快取,所以不能使用flushall命令清除所有的keys,那麼需要刪除以指定字串開頭的keys,但redis中的del命令不支援模糊刪除...