天天看點

批量删除包含特殊字元的Redis叢集Key

使用java用戶端儲存redis key資料,出現特殊字元。當然特殊字元應該避免。

叢集的批量删除的文法,使用lua,多台節點一一删除即可。

$redis_cli -h {你的ip} -p {你的port} -a {你的密碼} -c eval "local t1=redis.call('KEYS',ARGV[1]) for k,v in pairs(t1) do redis.call('del',v) end" 0 *a*
           

注意:

一定要用 ARGV[1],不能用KEYS[1],redis.call(‘KEYS’,KEYS[1])在叢集中會從第0個槽(slot)查找,也就是說有可能跳轉到其他節點查找key,這樣删除就會導緻有的節點中key删除不了,而ARGV[1]不會。其實redis用戶端指令 keys pattern後面的參數pattern是普通參數,不會跳轉到其他的槽。

繼續閱讀