Saya perlu menyimpan daftar python secara berkala seperti

[
[1, ...],
[2, ...],
[3, ...],
[4, ...]
]
  1. saya harus membuatnya kedaluwarsa setelah beberapa detik dan menambahkan yang baru (jadi saya ingin membuat daftar dan mengisinya sekaligus menggunakan daftar python saya).
  2. saya perlu mengambil sub_list dari rentang tertentu misalnya: [[2, ...], [3, ...]]

Menggunakan pustaka ini saya sedang mempertimbangkan untuk menggunakan lpush untuk membuat dan mengisi daftar sekaligus, expire untuk mengatur waktu kedaluwarsa setelah saya membuat dan mengisinya, lrange untuk mendapatkan rentang spesifik dari sub_list python saya

Apakah saya menggunakan solusi yang baik atau ada sesuatu yang lebih sesuai dengan kebutuhan saya?

0
91DarioDev 18 Oktober 2017, 17:36

2 jawaban

Jawaban Terbaik

Redis hanya mendukung struktur data satu tingkat, tetapi Anda dapat melanggar aturan menggunakan Json. Jadi, Anda dapat membuat setiap daftar dalam menjadi string json, dan menyimpannya menggunakan daftar redis.

1
GuangshengZuo 18 Oktober 2017, 15:33

Pakai acar saja

# store_objects_in_redis.py
'''
 Pickle (dumps) & set to store
 Get & and unpickle (loads) to retrieve
 #
 Courtesy: Armin Ronacher, http://flask.pocoo.org/snippets/73/ 
'''

import redis
from pickle import loads, dumps

# Create client with default connection
client = redis.client.StrictRedis()
# An example complex object
stored_object = [{1,2,3}, {'a':1,'b':2,'c':3}, ['foo', 'bar']]

# store
client.set('obj', dumps(stored_object))

# retrieve
retrieved_object = loads(client.get('obj'))

# compare
print(stored_object==retrieved_object, '\n', stored_object, '\n', retrieved_object)

'''
Prints (Running in windows7)
== RESTART: K:/.../REDIS/store_objects_in_redis.py ==
True 
 [{1, 2, 3}, {'c': 3, 'b': 2, 'a': 1}, ['foo', 'bar']] 
 [{1, 2, 3}, {'c': 3, 'b': 2, 'a': 1}, ['foo', 'bar']]

'''
2
Dick Schrauwen 11 Desember 2017, 13:27