按日期对Redis中存储的数据进行版本控制的方法

按日期对Redis中存储的数据进行版本控制的方法,redis,data-modeling,key-value-store,Redis,Data Modeling,Key Value Store,在保留用户设置的fontSize和fontColor的应用程序中,应该采取什么方法来建模时间序列? 要详细说明,用户在第一次运行时设置FontSize和FontColor。然后在使用应用程序的过程中,他们可以修改这些属性。我想保留时间戳,以便在它们发生变化时使用,并且能够根据这个时间戳进行查询。我正在寻找不同的方法来在Redis中建模这些数据?如果你能指出任何数据建模文献,那也会很有帮助 我的想法是使用Hashset并将用户的最新设置RPUSH到列表中。但是,当只有两个参数是userId和dat

在保留用户设置的
fontSize
fontColor
的应用程序中,应该采取什么方法来建模时间序列? 要详细说明,用户在第一次运行时设置FontSize和FontColor。然后在使用应用程序的过程中,他们可以修改这些属性。我想保留时间戳,以便在它们发生变化时使用,并且能够根据这个时间戳进行查询。我正在寻找不同的方法来在Redis中建模这些数据?如果你能指出任何数据建模文献,那也会很有帮助


我的想法是使用Hashset并将用户的最新设置RPUSH到列表中。但是,当只有两个参数是userId和date range时,我在查询部分就不知所措了。

通常,当您想在Redis中存储timeseries时,最好使用排序集,将成员的分数设置为历元值。这将通过使用
Z[REV]RANGEBYSCORE
为您提供微不足道的日期范围

至于您的问题,虽然使用散列存储这些设置是完全可行的,但您应该用保留另一个密钥的成本来抵消这一点(无论是内存占用还是其维护所需的额外读/写)。如果您所追求的只是存储大小/颜色元组,我建议将其嵌入排序集的成员值中。作为一个例子,考虑如下:

ZADD settings:9876 12345678 "12345678:12px:red"
上面演示了如何存储用户标识9876的设置,以用于(虚构的)时间戳12345678。成员值是通过将大小和颜色值与时间戳连接在一起以确保唯一性(请记住,[排序]集的成员必须是唯一的)而构成的