RedisTemplate 一般用什么方式实现批量删除?

瑞hong不还钱
  • 52

据我现在了解到的情况,RedisTemplate有两种方式可以实现批量删除。
1、借助 pipeline 把要删除的key传过去,一次过执行完。
2、redisTemplate.delete(一个集合,比如Set)。

请问:
1、一般做批量删除的话,用哪种方式呢?
2、这些批量删除的方式,能否做个对比,让人了解它们的好处和坏处?

请大神指教,谢谢~

回复
阅读 1.2k
1 个回答

绝大部分场景下后者就可以,本质就是调用的 Redis 的 DEL 命令,这个命令本来就是支持传多个 Key 的。

# REF: https://redis.io/commands/del
redis> DEL key1 key2 key3

要用管道的话反倒弄复杂了。

至于说 DEL 一次删太多 Key 的性能问题我倒真没遇见过,万级的 Key 批量删除算上网络开销也都是毫秒级的。

P.S. 我也是没懂为啥中文网络上那么多信誓旦旦地说 Redis 没提供批量删除 Key 命令的……它只是不能用通配符那种批量删除,又不是不能在给定 Key 的情况下批量删除,结果很多人以讹传讹就变成了不支持批量删除了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏