2016-10-08 8 views
1

Djangoプロジェクトでは、私はredisを高速バックエンドとして使用しています。redis-pyを使って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

lpush (list_name, *values_list)

これは、パラメータとしてVALUE_LIST内のコンテンツを解凍します。

dbに挿入する値が膨大な場合は、パイプライン化できます。または、コマンドラインツールredis-cli --pipeを使用してデータベースを設定することができます

関連する問題