刪除Redis中的多個key值方法總結

業務需要,需要定時清理一下redis中的某些前綴開頭的key值。起初找到的方法,很簡單,但是由於每刪除一個鍵都需要建立起一次連接,所以爲了更好的完成需求(好吧,我承認,由於特殊原因,寫的腳本造成項目的服務器崩潰了,我至今都不知道到底是何方神聖把我tmp文件夾中的套接字文件刪除掉的,有點思路,瑪蒂娜啊, 反正不是我的腳本出的錯,但我是不會說的。。。。)
那麼閒話少說,就把第一個方法記錄下來,以供以後查看。
一、redis-cli -a password keys" 正則匹配的鍵名" |xargs redis-cli -a password
這個方法簡單,很簡單。。。但是量大的刪除不建議,理由也是很簡單,每次都連接一次,效率太慢了。如果碰巧遇到的項目使用了redis不同的庫,反正我是沒遇到過,那麼就在這個方法的後面加上相應庫的標識就可以了。(-n就是標識)
二、方法就是上述的簡化,多次鏈接不好,那我一步到位就好了,使用的是,對,你沒看錯,我就是利用php單獨建立起一次鏈接,通過一次一次的遍歷刪除實現,說實話,有缺點,還很大,需要在查詢的時候加上限制,和查詢不加where條件的結論一樣。
三、就用到了redis2.8以後支持的scan語法,redis自己的遊標遍歷,,,用法是scan+遊標值。一次返回一次結果,再次返回0則表示完成一次遍歷,可以通過count方法進行設置每次返回的條數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章