在Redis列表中插入批量值

时间:2011-06-28 10:12:01

标签: python redis

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

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

更新:我为此功能创建了ticket

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

对于列表,不是我所知道的,但根据您的数据量,重新构建数据以使用redis的multiset命令HMSET可能是有效的,它确实可以为您提供多个插入单个电话:

HMSET V3620 UnixTime 1309312200 UID 64002 username "doug" level "noob"

正如您所料,HMSET创建了一个键入V3620的redis。 遵循HMSET命令,后跟多个字段 - 值对:

HMSET key field 1 value 1 field 2 value 2

答案 2 :(得分:0)

如果你运行2.4,你可以。虽然它尚未标记稳定,但它应该很快就会成为IIRC。那说我跑出了行李箱,对于我而言,它有很多坚实的数据,而且如果流失的话,它会很高。有关可变参数命令的更多详细信息,请参阅2.4 and other news

答案 3 :(得分:0)

你可以使用一个管道,如果使用redis-py你可以查看下面的内容,我在redis elasticache的aws实例上运行它,并找到以下内容:

import redis
rs = redis.StrictRedis(host='host', port=6379, db=0)
q='test_queue'

在10,000秒内以0.17秒跑

def multi_push(q,vals):
    pipe = rs.pipeline()
    for val in vals:
        pipe.lpush(q,val)
    pipe.execute()

在19世纪20年代以10,000瓦为单位

def seq_push(q,vals):
    for val in vals:
        rs.lpush(q,val)
快~~快78倍。