本来下午很困的,但是回车之后发现报错,就不困了。
是这样的我正准备往Redis里存储Key,然后:
(error) MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
翻译过来就是:
(错误)MISCONF Redis 已配置为保存 RDB 快照,但目前无法在磁盘上持久化。 可以修改数据集的命令被禁用,因为如果 RDB 快照失败(stop-writes-on-bgsave-error 选项),此实例被配置为在写入期间报告错误。 有关 RDB 错误的详细信息,请检查 Redis 日志。
stop-writes-on-bgsave-error 这一项被设置为no 就可以了???(我的配置文件里原本是yes)
这个字段到底是什么意思?
先说点别的:
Redis可以将数据库快照保存在名为dump.rdb的二进制文件中。
RDB这种持久化方式被称为快照。
工作方式:
- Redis调用forks,获得子进程
- 子进程将数据集写入到一个临时RDB文件中
- 当子进程完成对新RDB文件的写入时,Redis用新RDB文件替换原来的文件,并删除旧的RDB文件
这种工作方式使得Redis可以从copy-on-write机制中获益。(AOF的重写也利用了写时复制)
写时复制 是一种计算机程序设计领域的优化策略。核心思想是,如果有多个调用者同时要求相同资源,他们会共同获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的。此作法主要的优点是如果调用者没有修改该资源,就不会有副本被创建,因此多个调用者只是读取操作时可以共享同一份资源。
其实stop-writes-on-bgsave-error 在配置文件里在 快照 板块里。
################################ SNAPSHOTTING ################################
#
# Save the DB on