使用redis-py批量填充redis列表

时间:2016-10-08 08:32:23

标签: python django redis

在Django项目中,我使用redis作为快速后端。

我可以在redis列表中LPUSH多个值,如下所示:

lpush(list_name,"1","2","3")

但是,如果我尝试

,我就无法做到
values_list = ["1","2","3"]
lpush(list_name,values_list)

对于记录,这不会返回错误。相反,它会创建一个包含单个值的列表list_name。例如。 ['["1","2","3"]']。如果后来的AnObject.objects.filter(id__in=values_list),则无法使用此功能。如果有AnObject.objects.filter(id__in=values_list[0])(错误:对于基数为10的int()的无效文字:'['),它也不起作用。

什么是将大量LPUSH批量放入redis列表的最佳方法(首选python示例)。

1 个答案:

答案 0 :(得分:0)

lpush (list_name, *values_list)

这会将value_list中的内容解压缩为参数。

如果要将大量值插入到db中,则可以对它们进行管道处理。或者,您可以使用命令行工具redis-cli --pipe填充数据库