阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Redis持久化存储简述

135次阅读
没有评论

共计 2243 个字符,预计需要花费 6 分钟才能阅读完成。

Redis 持久化存储简述

Redis 是一个支持持久化的内存数据库,也就是说 redis 需要经常将内存中的数据同步到磁盘来保证持久化。redis 支持四种持久化方式,一是 Snapshotting(快照)也是默认方式;二是 Append-only file(缩写 aof)的方式;三是虚拟内存方式;四是 diskstore 方式。下面分别介绍之。

一、RBD(快照)

原理

在某个时间点将内存中的数据写入一个磁盘的临时文件,持久化结束后,用这个临时文件替换上次持久化的文件。

配置文件

save 900 1                              # 在 900 秒内如果键值修改过 1 次就快照
save 300 10                             # 在 300 秒内如果键值修改过 10 次就快照
save 60 10000                           # 在 60 秒内键值修改过 10000 次就快照

stop-writes-on-bgsave-error yes         # 后台备份出错时,是否禁止新的写入操作?
如果不禁止容易造成数据不一致
rdbcompression yes                      # 导出的 rdb 文件是否压缩
rdbchecksum yes                         # 恢复时导入 rdb 文件是否检验完整性、是否检验版本是否一致
dbfilename dump.rdb                     # 导出来得 rdb 文件名
dir /var/lib/redis                      # rdb 的存放路径

二、AOF

原理

通过将发送到服务器的写操作命令记录下来,形成 AOF 文件,此文件只许追加不能修改,Redis 启动时会读取 AOF 文件后重构数据(重新执行一遍)。文件默认名称是 appendonly.aof

配置文件

appendonly no                           # 是否开启 aof 功能
appendfilename "appendonly.aof"         # 文件名

appendfsync always                      # 只要一修改就同步至缓冲区,并同步至磁盘
appendfsync everysec                    # 每秒将数据同步至缓冲区,并同步至磁盘
appendfsync no                          # redis 不设定同步策略,由内核设定的参数决定是否同步

no-appendfsync-on-rewrite no            # appendfsync 设定为 always 或 everysec 的话,还要不要同步磁盘

auto-aof-rewrite-percentage 100         # 每隔多久重构 aof 文件,单位秒
auto-aof-rewrite-min-size 64mb          # aof 文件最小为多少时重构一次 aof 文件。搭配上一条使用

aof-load-truncated yes                  # 崩溃修复后自动进行全备

aof 重写、重构

将大量重复的命令合并成一条命令,而不必频繁的去重新执行每一条命令.
Redis 持久化存储简述

三、AOF 对比 RDB

AOF 更加安全,可以将数据即时同步到文件中,但是消耗磁盘 I /O,效率低
Snapshot 更高效,它是服务器在正常运行情况下数据同步最佳手段,文件尺寸小,效率高,安全性低

注:RDB 与 AOF 同时开启  默认使用 AOF 来恢复数据

四、常用架构

  • 架构良好的环境中:Master 使用 AOF,Slave 使用 snapshot。原因是主要确保数据完整,从要速度快。
  • 网络环境较差:建议使用 master 与 slave 同时使用 AOF 更加安全
  • 网络良好、需要收密集型写操作:建议 Master 采用 snapshot,Slave 采用 AOF

下面关于 Redis 的文章您也可能喜欢,不妨参考下:

Ubuntu 14.04 下 Redis 安装及简单测试 http://www.linuxidc.com/Linux/2014-05/101544.htm

Redis 主从复制基本配置 http://www.linuxidc.com/Linux/2015-03/115610.htm

Redis 集群搭建与简单使用  http://www.linuxidc.com/Linux/2017-03/142210.htm

CentOS 7 下 Redis 的安装与配置 http://www.linuxidc.com/Linux/2017-02/140363.htm

Ubuntu 14.04 安装 Redis 与简单配置 http://www.linuxidc.com/Linux/2017-01/139075.htm

Ubuntu 16.04 环境中安装 PHP7.0 Redis 扩展 http://www.linuxidc.com/Linux/2016-09/135631.htm

Redis 单机 & 集群离线安装部署 http://www.linuxidc.com/Linux/2017-03/141403.htm

CentOS 7.0 安装 Redis 3.2.1 详细过程和使用常见问题 http://www.linuxidc.com/Linux/2016-09/135071.htm

Ubuntu 16.04 环境中安装 PHP7.0 Redis 扩展 http://www.linuxidc.com/Linux/2016-09/135631.htm

Ubuntu 15.10 下 Redis 集群部署文档 http://www.linuxidc.com/Linux/2016-06/132340.htm

Redis 实战 中文 PDF http://www.linuxidc.com/Linux/2016-04/129932.htm

Redis 热迁移实战总结  http://www.linuxidc.com/Linux/2017-02/141083.htm

Redis3.0 配置文件详解  http://www.linuxidc.com/Linux/2017-03/141369.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148673.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计2243字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中