大家好,我需要一些关于架构问题的见解。
我想使用redis来存储一堆不断被访问的数据,每天只更新2-3次。它由aws lambda函数手动更新。问题是虽然有一个 EndDate
列,然后我想更新所有依赖于该数据的用户,这些数据的结束日期即将到来。我是否像下面的示例一样将用户列表存储在redis表中?或者我应该想出一个单独的方法?
Id Column1 Column2 User_Id_List End_Date
1 100 100 [1,2,3,4] 06-21-2020
2 100 100 [3,5,1,7] 06-22-2020
3 100 100 [9,2,1,4] 06-23-2020
4 100 100 [8,5,6,3] 06-24-2020
5 100 100 [4,8,2,9] 06-25-2020
6 100 100 [9,5,8,1] 06-26-2020
1条答案
按热度按时间zhte4eai1#
我的建议是将整个数据保存在一个数据类型中,
hash
但是不同的查询有不同的键。每行包括column1
,column2
以及useridlist
将与id
作为标识符。另一个散列将负责使用id
. 我没有把end date
因为它只用于确定应该返回哪些用户标识,但如果需要,也可以将它们作为字段。我初始化了每一行
id:<number>
与HSET
. 使用了另一个名为enddates
键将结束日期与相应的id
s。当您使用
HGET
您可以获得行的id(在下面的行中为1)。如果HGET
不返回任何内容(第二个命令),则可以放弃它。自从你得到
1
,您可以使用最后一个命令获取用户。然后在应用程序层中,您可以对其进行解析以传递到更新查询中。