male110
V2EX  ›  问与答

redis,批量 Pop

  •  
  •   male110 · Jan 24, 2019 · 4252 views
    This topic created in 2696 days ago, the information mentioned may be changed or developed.

    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 replies    2019-01-24 11:31:18 +08:00
    nimonew
        1
    nimonew  
       Jan 24, 2019
    Lrange key 0 -1
    hotReady
        2
    hotReady  
       Jan 24, 2019
    如果使用 redis,sRandMember 可以随机批量取数据且不删,spop 可以随机取数据且删
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3052 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 02:14 · PVG 10:14 · LAX 19:14 · JFK 22:14
    ♥ Do have faith in what you're doing.