redis set sadd/srem 大量 key 批量操作

2019-03-27 23:10:18 +08:00
 yanguangs

请问有什么办法能够在 redis 里面操作多个 set sadd/srem 同一个值吗?

目前的代码用 pipeline 去打包操作

但是还是会导致 redis sadd/srem 的时候占用时间太长

srem 40w key value 耗时 2s-3s

sadd 40w key value 耗时 3s-5s

有类似 sadd key value1 value2 的 sadd key1 key2 key3 value 的操作吗?

如果没有,那怎么去减少这个暂停的时间呢?

13924 次点击
所在节点    Redis
4 条回复
Athrob
2019-03-28 03:43:08 +08:00
lua 脚本试试
charles2java
2019-03-28 08:30:06 +08:00
不是应该减少每次 sadd 的个数,少量多次操作
yanguangs
2019-03-28 09:24:49 +08:00
@charles2java 你是说把这 40W 的操作量划分成更小的吗? 比方说 5*8w 这样子的操作吗?

redis 没有 sadd key1 key2 key3 value 的这种语法糖吗?
YaphetYin
2019-03-28 10:43:53 +08:00
https://redis.io/topics/pipelining

官方建议的方案 1 楼 2 楼都给出来了
- 切片 pipeline, 40w 太大了
- script

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/549326

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX