male110
V2EX  ›  问与答

redis,批量 Pop

  •  
  •   male110 · Jan 24, 2019 · 4239 views
    This topic created in 2686 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   ·   969 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:44 · PVG 05:44 · LAX 14:44 · JFK 17:44
    ♥ Do have faith in what you're doing.