我有一个在ubuntu服务器上运行的redis服务器的docker容器跟踪一个计数器,该计数器由一个也在容器中运行的节点js app增加。
当我启动我的ubuntu主机时,它运行良好所有容器redis + nodeapp都会自动启动。
访问网址时,我可以使用节点应用程序增加计数器。 我看到redis服务器中的计数器递增,抛出一个redis客户端和网页。
我有一个问题:
如果我重新启动主机,那么当容器重新启动时(我使用restart:always
构建我的容器以在主机重启时重新启动它们) redis服务器中的计数器降为0(计数器未保存)。
我注意到,如果我将计数器增加到某个值,我们就说20,如果我停止容器redis从主机和启动那个容器再次,计数器保存到20.并且重新启动主机后,计数器不会从0开始,而是之前的值20,因此计数器已保存。
所以我的问题是如何在主机重启时保存数据(redis容器中的计数器)?为什么在我的情况下保存数据的唯一方法是使用docker命令停止容器?
答案 0 :(得分:0)
你见过http://redis.io/topics/persistence吗?
默认情况下,Redis以二进制形式将数据集的快照保存在磁盘上 文件名为dump.rdb。您可以配置Redis以保存它 数据集每隔N秒,如果至少有M个变化 数据集,或者您可以手动调用SAVE或BGSAVE命令。对于 例如,此配置将使Redis自动转储 如果至少更改了1000个密钥,则每60秒将数据集转换为磁盘:
save 60 1000