V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
male110
V2EX  ›  问与答

redis,批量 Pop

  •  
  •   male110 · 2019-01-24 10:43:02 +08:00 · 3531 次点击
    这是一个创建于 2140 天前的主题,其中的信息可能已经有所发展或是发生改变。

    eval "local rt={};for i=1,ARGV[1],1 do local v=redis.call('LPop',KEYS[1]);if(v==nil) then break; end;rt[i]=v;end;return rt;" 1 t 3

    这个是 redis list,pop 一次只能取一个值,我想一次能批量取。所以只能用 lua 脚 本。

    local v=redis.call('LPop',KEYS[1]);

    if(v==nil) then

    break;

    end;

    我是想 v=nil 时,终止循环,但好像无效,我哪儿里写错了?

    2 条回复    2019-01-24 11:31:18 +08:00
    x537196
        1
    x537196  
       2019-01-24 11:22:43 +08:00
    Lrange key 0 -1
    toyuanx
        2
    toyuanx  
       2019-01-24 11:31:18 +08:00
    如果使用 redis,sRandMember 可以随机批量取数据且不删,spop 可以随机取数据且删
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1215 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:14 · PVG 02:14 · LAX 10:14 · JFK 13:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.