首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Redis

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

  •  
  •   yanguangs · 205 天前 · 8719 次点击
    这是一个创建于 205 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问有什么办法能够在 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 的操作吗?

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

    4 回复  |  直到 2019-03-28 10:43:53 +08:00
        1
    Athrob   205 天前 via iPhone
    lua 脚本试试
        2
    charles2java   204 天前 via Android
    不是应该减少每次 sadd 的个数,少量多次操作
        3
    yanguangs   204 天前
    @charles2java 你是说把这 40W 的操作量划分成更小的吗? 比方说 5*8w 这样子的操作吗?

    redis 没有 sadd key1 key2 key3 value 的这种语法糖吗?
        4
    YaphetYin   204 天前
    https://redis.io/topics/pipelining

    官方建议的方案 1 楼 2 楼都给出来了
    - 切片 pipeline, 40w 太大了
    - script
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   872 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 21:16 · PVG 05:16 · LAX 14:16 · JFK 17:16
    ♥ Do have faith in what you're doing.