2011-12-29 12 views
4

Python-redisを使用してRedisの辞書のリストをキーに対して保持する方法。セッションリストに追加するだけでなく、新しいセッションを追加し、また、それらをretriveしたいRedisのDictのリスト

'browsing_history' : { 
    'session_key_1' : [{'image': 'image-url', 'url' : 'url', 'title' : 'test_title', 'description' : 'test_description'}, {''image': 'image-url2', 'url' : 'url2', 'title' : 'test_title2', 'description' : 'test_description2'}], 
    'session_key_2' : [{'image': 'image-url', 'url' : 'url', 'title' : 'test_title', 'description' : 'test_description'}, {''image': 'image-url2', 'url' : 'url2', 'title' : 'test_title2', 'description' : 'test_description2'}], 
} 

:以下は、私が目指していたデータ構造です。 Python-redisを使用してこれを行うにはどうすればよいですか?

答えて

7

{'image': 'image-url', 'url' : 'url', 'title' : 'test_title', 'description' : 'test_description'}pickleまたはjsonにシリアル化してください。 redis listを使用して文字列として格納します。これらのリストにアクセスするには、browsing_history:SESSION_KEY_1のようなキーを使用します。すべてのセッションキーの一覧を取得する必要がある場合は、おそらくキーの文字列のセットを維持する必要がありますbrowsing_history:*

+0

これは面白いですが、私は読んで反復することに懸念しています。このリストを反復するには、すべてのアイテムを逆シリアル化する必要があります。付加はこの方法論のもとでは速い。 – Tommy

+0

任意のソースからのデータをPythonオブジェクトにロードするときに、デシリアライズステップは常に必須です。ほとんどのデータベースドライバはこれをあなたのためにしばしば表示します。 – Ski