在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示例)。
答案 0 :(得分:0)
lpush (list_name, *values_list)
这会将value_list中的内容解压缩为参数。
如果要将大量值插入到db中,则可以对它们进行管道处理。或者,您可以使用命令行工具redis-cli --pipe
填充数据库