Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Redis是否提供过期和过期回调?_.net_Redis_Queue_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack_Redistogo - Fatal编程技术网 servicestack,redistogo,.net,Redis,Queue,servicestack,Redistogo" /> servicestack,redistogo,.net,Redis,Queue,servicestack,Redistogo" />

.net 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

我要开始一个绿地项目。在其中,我们希望有一个已过期的队列。因此,我添加了一个密钥,该项将在。。说。。20分钟

预计队列将相当大。10个具有不同到期时间的数千个密钥

我马上想到可能会使用,当然,Redis:)

到目前为止,它有望托管在
AppHarbor+RavenDb+RedisToGo
上。Redis密钥将是RavenDb Id的。(字符串-例如
users/1
或任何内容)

问题
  • 我可以利用SS.Redis向Redis队列添加过期的项目吗?(我假设是的,例如typedClient.ExpiresAt(…)
  • 我是否可以利用RedisToGo作为云托管redis提供商,并使用SS.redis作为客户端?(再次假设是和是)
  • 当一个项目过期时,我可以让它执行REST获取或发布到某个URL吗?-所以我可以“处理”到期?(不知道)
  • 在redis中,有到期日的是,而不是列表/集合/散列等中的单个项目。如果您有一个队列(我假设在redis术语中是一个列表,在不同的端推/弹出),则到期日适用于同一队列中的所有项目。对于允许每项过期的列表(etc),没有一个很好的比喻。坦率地说,最简单的事情可能是在有效负载中包含逻辑过期,如果过期,则在弹出项目时丢弃它们

  • 由于客户机可以通过所选端口访问服务器,因此无论特定的客户机和服务器/提供商如何,您都应该可以;但是,如果您有这些服务,那么验证这一点可能是微不足道的

  • Redis目前不包括任何到期触发功能,但是这一功能已经被提议并(似乎)被2.8版本所接受();redis本身不会向URL发送任何帖子,但假设您可以在事件频道上收听,并在代码中这样做


  • 但是,它又回到了键与项的过期问题。

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

    所有作业都在密钥上过期。该项目可以是本会议主题的任何内容。只是一把钥匙。。有一些价值。。它们的密钥将在20分钟或5小时内过期。这就给我们留下了=>触发器功能。因此,这意味着没有(截至发帖时)。单调的。。但是哦,好吧。。。呃。。。还有其他建议吗?@Pure.Krome如果你只是在使用密钥,我不太确定你是如何将其用作队列的,除非你有一个列表,其中只包含要退出队列的密钥,然后进行第二次获取(顺便说一句,可以通过2.6中的lua很好地编写脚本-即pop,然后尝试“获取”-如果返回为零(过期),然后弹出next,etc)@Pure.Krome作为主动通知:同样,当前没有,但是您可以在redis组上发布请求更新/eta