首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis提供Expiration和Expiration回调吗?

Redis提供Expiration和Expiration回调吗?
EN

Stack Overflow用户
提问于 2012-12-17 11:43:32
回答 2查看 2.5K关注 0票数 3

我要开始一个绿色领域的项目。在它中,我们希望有一个包含队列。所以我加上一个密钥,这个项目就过期了..。说..。20分钟

预期队列会相当大。不同有效期的成千上万把钥匙中的10把。

我立刻想到可能使用ServiceStack.Redis,当然,Redis :)

到目前为止,希望这将被托管在AppHarbor + RavenDb + RedisToGo上。Redis键将是RavenDb Id。(字符串-例如。users/1之类的)

问题

  1. 我是否可以利用SS.Redis在到期时向redis队列添加项?(我想是的。就像。typedClient.ExpiresAt(..))
  2. 我可以利用RedisToGo作为云托管的redis提供者,并使用SS.Redis作为客户端吗?(同样,假设是和是)
  3. 当一个项目过期时,我能让它做一个REST获取或者发布到某个URL吗?-这样我就可以“处理”过期了吗?(不知道)。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-17 12:05:43

  1. 在redis中,具有过期的是,而不是列表/set/散列/等等中的单个项。如果您有一个队列(我假设这是一个列表,在不同的末端推送/弹出),那么您的过期将适用于同一队列中的所有项。没有一个很好的比喻清单(等等)将允许每个项目的到期。坦率地说,最简单的事情可能是在有效负载中包含逻辑过期,如果过期了,只要在弹出项时丢弃它们即可。
  2. 由于客户端可以通过所选端口访问服务器,所以您应该没事--不管是哪个特定的客户端和服务器/提供者;但是,如果您有这些服务,那么验证这一点想必很简单。
  3. 目前,Redis不包括任何到期触发功能,,但已经提出,并且(似乎)接受了2.8版本(见这里的讨论);redis本身不会对urls做任何发布,但假设您可以在事件通道上监听并在代码中这样做

但是,它又回到了密钥对项的过期问题上。

票数 3
EN

Stack Overflow用户

发布于 2013-10-02 00:57:32

尝试对队列使用排序集(ZSET) --以时间戳作为得分。使用ZREVRANGEBYSCORE从队列中选择作业时,可以检查作业被提交到队列中的时间戳,如果作业太旧,可以忽略作业。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13913527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档