所以我正在开发一个基于Flask的简单网络服务器,它存储并稍后显示我通过邮件调用收到的一些信息。
无论如何,我收到的信息都是这样存储的:
@app.route('client/<client_id>/', methods=['POST'])
def status(client_id):
r_server=redis.Redis("127.0.0.1")
jsonobj=request.data
data=json.loads(jsonobj)
result = {
'client_id': client_id
'current test': data[0]
'status': data[1]
}
return
现在我想要的是将它保存到redis中,同时保持client_id当前测试和状态链接在一起。
有一种简单的方法可以将它存储在redis中并稍后收到它,我可以使用client_id查看操作吗?
问候
答案 0 :(得分:1)
如果特定client_id的信息是可覆盖的,则可以使用Redis哈希(http://redis.io/commands/hmset)。例如:
>>> r=redis.Redis('')
>>> r.hmset('ClientID:127.0.0.1', {'test':'1', 'status':'success'})
True
>>> r.hmget('ClientID:127.0.0.1',['test','status'])
['1', 'success']
如果必须追加记录,您可以将每个记录转储为字符串,并保存在Redis列表中。例如:
>>> r.rpush('ClientID:127.0.0.1', json.dumps({'test':'1', 'status':'success'}))
1L
>>> r.rpush('ClientID:127.0.0.1', json.dumps({'test':'2', 'status':'failure'}))
2L
>>> [json.loads(x) for x in r.lrange('ClientID:127.0.0.1', 0, -1)]
[{u'test': u'1', u'status': u'success'}, {u'test': u'2', u'status': u'failure'}]