【问题标题】:Using Spring Session Redis without rdb snapshots使用没有 rdb 快照的 Spring Session Redis
【发布时间】:2017-01-08 13:52:33
【问题描述】:

仅使用 Spring Session 作为会话复制服务时是否需要 Redis 快照?我读过 Redis Persistence,但似乎“持久性”仅意味着备份,并不是完全必需的。

我的应用程序有一个问题,无论我调用多少次FLUSHALL,它都会以某种方式不断重新加载旧会话。我怀疑我的 RDB 文件。

我可以将所有内容都定义为仅记忆吗?使用 RDB 文件是否有任何可靠性/性能优势?

【问题讨论】:

    标签: spring redis spring-session


    【解决方案1】:

    我的应用程序中有一个问题,无论我调用 FLUSHALL 多少次,它都会以某种方式不断重新加载旧会话。我怀疑我的 RDB 文件。

    FLUSHALL 也会从 RDB 文件中删除数据。我想数据可能是在你调用FLUSHALL之后被其他进程写入的。

    我可以将所有内容都定义为仅记忆吗?

    是的,您可以使用配置文件禁用将数据库保存到磁盘。默认情况下,Redis 将使用配置文件中的一些保存指令将数据保存到磁盘。例如:

    save 900 1
    save 300 10
    save 60 10000
    

    要禁用保存,只需注释这些保存指令或添加一个空的保存指令(即save "")。

    # save 900 1
    # save 300 10
    # save 60 10000
    

    您还可以使用配置文件禁用 AOF 持久性日志:

    appendonly no
    

    使用 RDB 文件是否有任何可靠性/性能优势?

    可靠性:由于 Redis 会将您的数据保存到磁盘,因此您可以在重新启动 Redis 时恢复数据。但是,如果 Redis 意外宕机,您可能会丢失一些数据,具体取决于您在配置文件中的保存指令。

    性能:存在性能损失,尤其是当您使用 RDB 持久化内存中的大数据时。

    您可以从its website获得更多关于Redis Persistence的详细信息。

    【讨论】:

    • 谢谢!关于 flushall 从文件中删除数据的文档在哪里?没找到。
    • flushall 删除所有数据库的所有键。它还必须从保存的 rdb 文件中删除所有数据。否则,只删除内存中的数据是没有意义的,也不需要 flushall 命令,对吧?您可以在干净的 Redis 实例上进行测试。
    猜你喜欢
    • 2016-12-09
    • 2013-11-04
    • 2020-06-29
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 2021-01-06
    相关资源
    最近更新 更多