我正在开发一个ruby应用程序,可以创建todos和meetings。会有提醒,是发送出尊重每一个会议或待办事项,因为你会想象。我们已经在使用sidekiq了,如果能用sidekiq在x天/小时内创建预定的作业,那就太好了。我担心的是,如果redis重新启动,我们将失去工作。我写的假设,如果redis重新启动,我们失去了工作,如果是这样,有什么可以做的呢?如果没有sidekiq,我还能用什么?
42fyovps1#
有几种方法可以做到这一点,只要通过链接http://redis.io/topics/persistence。Snapshotting是一种对磁盘上的数据集进行快照的技术。
Snapshotting
9cbw7uwe2#
由于Sidekiq构建在Redis之上,因此您可以设置redis以使用--save标志来快照数据。
redis
--save
docker run --name some-redis -d redis redis-server --save 60 1 --loglevel warning
字符串在本例中,如果至少执行了**1 write操作,则--save 60 1将每60 seconds**保存一次数据库快照。如果您不经常重新启动redis示例,那么这对于许多用例来说可能已经足够好了。有关redis持久性的所有详细信息,请参阅:https://redis.io/docs/management/persistence/如果您知道有一个部署作业要重新启动redis,例如,要加载新内核,您可以运行:redis-cli SAVE && reboot在重新启动之前将内存转储到磁盘(因此不必担心等待60秒计时器耗尽)。也就是说,对于你关于会议通知的特定例子,我可能会使用mysql加莱拉复制和cron或redis作业来扫描数据库,寻找准备好发送电子邮件的笔记,而不是依赖于redis,它可能会定期重新启动,除非你的用户对每一个伟大的一次,电子邮件不显示,否则可以发送。
1 write
--save 60 1
60 seconds
redis-cli SAVE && reboot
2条答案
按热度按时间42fyovps1#
有几种方法可以做到这一点,只要通过链接http://redis.io/topics/persistence。
Snapshotting
是一种对磁盘上的数据集进行快照的技术。9cbw7uwe2#
由于Sidekiq构建在Redis之上,因此您可以设置
redis
以使用--save
标志来快照数据。字符串
在本例中,如果至少执行了**
1 write
操作,则--save 60 1
将每60 seconds
**保存一次数据库快照。如果您不经常重新启动redis
示例,那么这对于许多用例来说可能已经足够好了。有关redis持久性的所有详细信息,请参阅:https://redis.io/docs/management/persistence/
如果您知道有一个部署作业要重新启动
redis
,例如,要加载新内核,您可以运行:redis-cli SAVE && reboot
在重新启动之前将内存转储到磁盘(因此不必担心等待60秒计时器耗尽)。也就是说,对于你关于会议通知的特定例子,我可能会使用mysql加莱拉复制和cron或redis作业来扫描数据库,寻找准备好发送电子邮件的笔记,而不是依赖于redis,它可能会定期重新启动,除非你的用户对每一个伟大的一次,电子邮件不显示,否则可以发送。