在Redis列表中批量插入值

jld*_*ont 2 python redis

有没有办法同时在 Redis 列表中存储多个值?我只能找到一种方法在列表中一次插入 1 个值。

我一直在查看以下命令文档:http : //redis.io/commands

更新:我为此功能创建了一张票

Gle*_*son 6

您可以使用管道,如果使用 redis-py,您可以查看下面的内容,我在 redis elasticache 的 aws 实例上运行它,发现以下内容:

import redis
rs = redis.StrictRedis(host='host', port=6379, db=0)
q='test_queue'
Run Code Online (Sandbox Code Playgroud)

10,000 vals 在 0.17 秒内运行

def multi_push(q,vals):
    pipe = rs.pipeline()
    for val in vals:
        pipe.lpush(q,val)
    pipe.execute()
Run Code Online (Sandbox Code Playgroud)

在 13.20 秒内运行 10,000 vals

def seq_push(q,vals):
    for val in vals:
        rs.lpush(q,val)
Run Code Online (Sandbox Code Playgroud)

〜快 78 倍。


djc*_*djc 2

是的,看起来不可能。您也许能够使用 MULTI(事务)在原子序列中存储多个值。