情况如下:我有一个flaskweb服务器,需要为它开发一个新的api端点(post/get),它将更新/读取服务器状态。
我的post api需要这样的输入:
{
"name": <name_of_the_server>,
"serverUrl" <url_of_the_server>,
"available": true/false
}
我想在redis里保存这个信息一周。我将api请求中的整个json保存为redis中的字典值。我倒满了泡菜。关键是“name”参数。
我还有一个getapi端点,可以在其中指定服务器的名称,并获取有关它的状态信息。因此,python在redis中检查包含服务器名称(由用户通过api给出)的键,并返回值(包含先前保存的所有信息的字典)。
这一切都是好的,并按预期工作。但是,通过getapi,我还应该能够使用服务器url(以及服务器名称)搜索服务器状态。
到目前为止,我的解决方案是这样的:
// Redis is a class, I previously instantiated
redis.set(server_name, server_data, ex=time_to_live)
redis.set(server_url, server_data, ex=time_to_live)
我设置了两个键,包含完全相同的信息。通过get端点,我可以使用服务器名称或服务器url检查服务器状态,因为它们返回相同的值。而且,它们的到期日相同,并且总是一起更新。
这是可行的,但我觉得这是一个“作弊”的解决方案,所以我想问一个建议,如果我应该保持这种方式,或者如果有更好的方法来实现相同的功能。提前谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!