我有一个用例,我需要每次减少一个redis" x"秒。有没有办法在Redis中做到这一点? Redis有" aeCreateTimeEvent",但它是否暴露给客户?
如果我们从Redis外部执行此操作,我们需要一种可靠的方法来调用代码来减少存储在Redis中的计数器。
通过可靠,我的意思是:托管&#34的节点失败每个" x"秒"程序,不应该导致此设置失败。
那说可能有一个分布式程序来减少听起来像很多工作。所以最好在Redis中内置一些东西。
答案 0 :(得分:3)
不,aeCreateTimeEvent
因为所有简单事件库(在AE_H
中描述)仅在Redis内部使用。但是通过一些小的Redis服务器修补,这里真的很难做到这一点。
我们用这种方式解决类似的问题:
serverCron
修补redic.s
个功能,添加带有run_with_period
宏的自定义代码的新条目。我认为这对Redis服务器来说可能是一个非常酷的想法 - 添加将自定义LUA脚本添加到Redis cron管道的功能。这允许将Redis转换为某种LUA应用程序服务器。
last update
时间。 last update
。last update
的值以确定递减步骤:(current_time - last_update)mod X * decrement_step。如果服务器崩溃,这允许您恢复正确的减少值。