k-v操作
普通的k-v操作
批量操作
1.通过lua在redis客户端批量删除key
redis是不支持批量删除指令的, 因为redis是单线程的. 批量删除会占用redis的主线程.影响性能.
但是我认为现在redis既然已经支持异步线程操作一些后台数据了, 也就可以支持在不影响主线程性能的情况下实现 正则批量删除数据的命令了. 不知为何还是没有.
这里记录一下使用lua脚本, 在redis命令行里 通过正则批量删除缓存的功能. 核心是使用 keys命令. 这个会阻塞主线程, 如果量比较大, 慎用.
eval "local keys=redis.call('keys',KEYS[1]);local count=0;for i,v in ipairs(keys) do redis.call('del',v); count=i end; return count" 1 key正则表达式
将最后的’key正则表达式’换成自己想删除的keys的表达式即可.
关于量的问题, 我删除线上5w条缓存,秒删,无任何影响.各位同学自行参考量级.
不定期更新中…
参考
文档信息
- 本文作者:寒澈
- 本文链接:https://www.hancher.top/2022/09/29/redis_common_cmd/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)