.net Redis是否提供过期和过期回调?
我要开始一个绿地项目。在其中,我们希望有一个已过期的队列。因此,我添加了一个密钥,该项将在。。说。。20分钟 预计队列将相当大。10个具有不同到期时间的数千个密钥 我马上想到可能会使用,当然,Redis:) 到目前为止,它有望托管在.net Redis是否提供过期和过期回调?,.net,redis,queue,servicestack,redistogo,.net,Redis,Queue,servicestack,Redistogo,我要开始一个绿地项目。在其中,我们希望有一个已过期的队列。因此,我添加了一个密钥,该项将在。。说。。20分钟 预计队列将相当大。10个具有不同到期时间的数千个密钥 我马上想到可能会使用,当然,Redis:) 到目前为止,它有望托管在AppHarbor+RavenDb+RedisToGo上。Redis密钥将是RavenDb Id的。(字符串-例如users/1或任何内容) 问题 我可以利用SS.Redis向Redis队列添加过期的项目吗?(我假设是的,例如typedClient.ExpiresAt
AppHarbor+RavenDb+RedisToGo
上。Redis密钥将是RavenDb Id的。(字符串-例如users/1
或任何内容)
问题
但是,它又回到了键与项的过期问题。尝试使用排序集(ZSET)作为队列-时间戳作为分数。当您使用ZREVRANGEBYSCORE从队列中选取作业时,您可以检查作业提交到队列中的时间戳,如果作业太旧,您可以忽略该作业。所有作业都在密钥上过期。该项目可以是本会议主题的任何内容。只是一把钥匙。。有一些价值。。它们的密钥将在20分钟或5小时内过期。这就给我们留下了=>触发器功能。因此,这意味着没有(截至发帖时)。单调的。。但是哦,好吧。。。呃。。。还有其他建议吗?@Pure.Krome如果你只是在使用密钥,我不太确定你是如何将其用作队列的,除非你有一个列表,其中只包含要退出队列的密钥,然后进行第二次获取(顺便说一句,可以通过2.6中的lua很好地编写脚本-即pop,然后尝试“获取”-如果返回为零(过期),然后弹出next,etc)@Pure.Krome作为主动通知:同样,当前没有,但是您可以在redis组上发布请求更新/eta