當我們需要遍歷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命令不支援模糊刪除...