【发布时间】:2018-01-09 00:24:02
【问题描述】:
我在 redis 中有一个哈希。它有 20 个键/值对。我想每小时更新一次并删除旧元素。删除哈希键内容并填充新值的最佳方法是什么。由于 HASH 是 API 的一部分,因此当我从 HASH 中删除所有元素时,我不想引起任何竞争条件。我不想使用EXPIRE,因为我想控制日程安排。
我创建了以下模型。假设 Faker() 是我获取新值的 API。我想向 HASH 添加新值并删除旧值。
import redis
import json
from faker import Faker
try:
r = redis.StrictRedis(host='localhost', port=6379, db=0)
fake = Faker()
for _ in range(20):
userId = fake.uuid4()
user = {"name":fake.name(),"address":fake.address(),"country":fake.country()}
r.hset('users',userId,json.dumps(user))
except Exception as e:
print ('Error',e)
【问题讨论】:
-
你能重命名哈希集吗?如果是这样,建立一个新的,并切换名称。
-
我可以重命名它们,但 API 客户端将如何知道新的哈希集或如何摆脱旧的哈希集。我不想在重命名和删除过程中造成任何混乱。