Redis python-rom对象过期



我正在使用flask和redis。我决定尝试rom redis form (http://pythonhosted.org/rom/)来管理一些稍微复杂的数据结构。我有一个对象列表,比如:

urls = ['www.google.com', 'www.example.com', 'www.python.org']

我也有房间模型:

class Stored_url(rom.Model):
    url = rom.String(required=True, unique=True, suffix=True)
    salt = rom.String()
    hash = rom.String()
    created_at = rom.Float(default=time.time)

这似乎是工作在我的开发设置。在我的情况下,我希望每天从头开始使用一些数据,并希望为一些对象设置过期时间。我已经浏览了http://pythonhosted.org/rom/rom.html#上的文档,但除了请求缓存之外,没有找到对过期的引用。是否有一种方法允许房间对象过期?

Rom不提供自动过期数据的内置方法。这是故意的。我已经在前三次场合解释了原因:

  • https://github.com/josiahcarlson/rom/issues/40
  • https://github.com/josiahcarlson/rom/pull/47
  • https://github.com/josiahcarlson/rom/issues/62

TL,博士;Redis并没有提供必要的内部机制来实现这个自动(触发器)。我在上面链接的拉请求中提供了2个解决方案。

从文档中,最好创建一个新的expire_at float列,index=True,该列可以存储实体到期的时间。然后,要使数据过期,可以使用:Model.query。Filter (expire_at=(0, time.time())).limit(10) to(例如)获取最多10个需要过期的最老实体

https://josiahcarlson.github.io/rom/rom.html expiring-models-ttls

最新更新