当前位置: 首页 > wzjs >正文

锦州制作网站公司谷歌浏览器网址

锦州制作网站公司,谷歌浏览器网址,数字报网站模板,沈阳网站建设建设公司哪家好一.Redis的持久化机制 Redis 是基于内存型的 NoSQL,和 MySQL 是不同的,使用内存存储进行数据缓存。 如果想要实现数据的持久化,Redis 也可支持将内存数据保存到硬盘文件中。 Redis 支持两种数据持久化保存方法: RDB: Redis Da…

一.Redis的持久化机制

Redis 是基于内存型的 NoSQL,和 MySQL 是不同的,使用内存存储进行数据缓存。

如果想要实现数据的持久化,Redis 也可支持将内存数据保存到硬盘文件中。

Redis 支持两种数据持久化保存方法:

  • RDB: Redis DataBase
  • AOF: Append Only File

以MySQL 做类比RDB类似MySQL dump,AOF类似 MySQL binlog。

二.RDB

RDB(Redis DataBase):是基于某个时间点的快照,注意 RDB 只保留当前最新版本的一个快照。

相当于 MySQL 中的完全备份。

RDB 持久化功能生成的 RDB 文件是一个经过压缩的二进制文件,通过该文件可以还原生成该 RDB 文件时数据存储的状态。因为 RDB 文件是保存在磁盘中的,所以即使 Redis 服务器进程甚至服务器崩机,只要配置 RDB 文件存在,就能将数据恢复。

RDB 支持 savebgsave 两种命令实现数据文件的持久化。 

  • SAVE命令用于执行同步保存操作,它会将当前Redis实例的所有数据快照以RDB文件的形式保存到硬盘上。这个命令会阻塞所有其他客户端,直到保存操作完成,因此在生产环境中不推荐使用。
  • BGSAVE 命令用于在后台异步保存当前数据库的数据到磁盘。执行 BGSAVE 命令后,Redis 会立即返回 OK,然后 fork 出一个新子进程。原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出

save 会阻止其它指令的执行,有可能会造成阻塞,bgsave

通过以下命令查看 BGSAVE 是否成功

redis-cli INFO persistence

开启RDB

通过 redis.conf 配置文件开启 RDB,找到 save 配置项,并确保以下内容未被注释(没有 # 号)

例如:

save 900 1   # 900秒(15分钟)内至少有1次写操作
save 300 10  # 300秒(5分钟)内至少有10次写操作
save 60 10000  # 60秒(1分钟)内至少有10000次写操作

修改RDB文件路径

如图,配置文件中dir和dbfilename 组成了RDB文件的存放路径。

三.AOF

AOF (Append-Only File) 是 Redis 提供的一种 持久化机制,它通过 将每一个写入命令追加到日志文件 来确保数据不会丢失。相比于 RDB (Redis Database File),AOF 提供了更高的数据安全性,但相应地也会增加磁盘 I/O 负担。

AOF 即 AppendOnlyFile,AOF 和 RDB 都遵守 COW 机制,AOF 可以决定不同的保存策略,默认为每秒钟执行一次 fsync,按照操作的顺序将修改命令追加至指定的 AOF 日志文件尾部。

在第一次启用 AOF 功能时,会做一次完全备份,后续将持续性备份,相当于完整数据备份 + 增量变化。

如果同时启用 RDB 和 AOF,进行恢复时,默认以 AOF 文件优先级高于 RDB 文件,因此会使用 AOF 文件进行恢复。

在第一次开启 AOF 功能时,会自动备份所有状态到 AOF 文件中,后续只会记录数据的更新指令。

注意:AOF 模式默认是关闭的,第一次开启 AOF 并在服务器发生故障后,会因为 AOF 的优先级高于 RDB,而 AOF 默认没有数据文件存在,从而导致所有数据丢失。

AOF的开启

直接修改配置文件(不推荐,会丢数据)

把此项设置为yes

设置AOF文件路径和文件名

动态修改(推荐)

 动态修改之后再修改配置文件

修改AOF增量日志 恢复误删除数据

如图,误删除数据,下面通过修改AOF增量数据恢复误删除数据。

 把误删除的指令删除重新启动服务。

恢复成功

AOF rewrite重写 

将一些重复的,可以合并的,过期的数据重新写入一个新的AOF文件,从而节约AOF备份占用的硬盘空间,也能加速恢复
可以手动执行bgrewriteaof触发AOF,第一次开启AOF功能,或定义自动rewrite策略

AOF rewrite过程
父进程生成一个新的子进程负责生成新的AOF文件,同时父进程将新的数据更新同时写入两个缓冲区aof_buff和aof_rewrite_buf 

 

 实现AOF rewrite

在 Redis CLI 执行

bgrewriteaof

动态修改

CONFIG SET auto-aof-rewrite-percentage 100
CONFIG SET auto-aof-rewrite-min-size 64mb
  • auto-aof-rewrite-percentage 100:表示 AOF 文件比上次重写后的大小 增长 100%(即翻倍)时,触发 AOF 重写。
  • auto-aof-rewrite-min-size 64mb:只有当 AOF 文件达到 64MB 以上时才会触发重写。

如果要使该配置永久生效,需要修改 redis.conf,然后重启

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

 

rewrite相关配置
#同时在执行bgrewriteaof操作和主进程写aof文件的操作,两者都会操作磁盘,而bgrewriteaof往往会涉及大量磁盘操作,这样就会造成主进程在写aof文件的时候出现阻塞 的情形,以下参数实现控制no-appendfsync-on-rewrite no      #在aof rewrite期间,是否对aof新记录的append暂缓使用文件同步策略,主要考虑磁盘1O开支和请求阻塞时间。 #默认为no,表示"不暂缓”,新的aof记录仍然会被立即同步到磁盘,是最安全的方式,不会丢失数据,但是要忍受阻塞的问题
#为yes,相当于将appendfsync设置为no,这说明并没有执行磁盘操作,只是写入了缓冲区,因此这样并不会造成阻塞(因为没有竞争磁盘),但是如果这个时候redis挂掉,就 会丢失数据。丢失多少数据呢?Linux的默认fsync策略是30秒,最多会丢失30s的数据,但由于yes性能较好而且会避免出现阻塞因此比较推荐#rewrite 即对aof文件进行整理,将空闲空间回收,从而可以减少恢复数据时间auto-aof-rewite-percentage 100 #当Aof log增长超过指定百分比例时,重写AOF文件,设置为0表示不自动重写Aof日志,重写是为了使aof体积保持最小,但是还可 以确保保存最完整的数据auto-aof-rewrite-min-size 64mb #触aof rewrite的最小文件大小aof-load-truncated yes#是否加载由于某些原因导致的未尾异常的AOF文件(主进程被kill/断电等),建议yes

 

 

 

http://www.dtcms.com/wzjs/526354.html

相关文章:

  • 做网站要是要求吗百度爱采购怎么优化排名
  • 网站解析密码查网站是否正规
  • 国外网站建站营销广告语
  • 用html做网站东莞seo网站制作报价
  • asp.net获取网站的域名推广网站怎么制作
  • 临沂罗庄做网站谷歌广告优化师
  • 网站动态静态短链接生成
  • 西安网优项目公司搜索引擎优化与关键词的关系
  • wordpress victhemeseo站长工具查询
  • wordpress手机管理APP淘宝seo优化
  • 武汉网站建设兼职2017就业seo好还是sem
  • 黄金做空网站电商网站建设公司
  • 海南在线seo实战密码电子书
  • 贵阳专业防水堵漏关键词优化公司哪家好
  • 独立网站建设推广网站推广
  • 零陵旅游建设投资公司网站西安seo网站关键词优化
  • 360建筑网在哪里西安seo网络优化公司
  • 网站开发人员岗位描述深圳百度关键
  • 在电脑上做苗木网站seo引擎优化外包
  • 一个网站源码值多少钱网站推广的一般流程是
  • 承德市网站建设市场监督管理局官网入口
  • 深圳百度seo公司电脑系统优化软件
  • 网站平台搭建要多少想做网站找什么公司
  • 杭州网站建设服务公司百度做网站
  • 网站如何做区域屏蔽代码百度账户托管
  • 西安大型网站建设公司接广告推广的平台
  • 赌博网站做代理微信群卖房卡seo新手入门教程
  • 网站服务器哪里的好阿里巴巴数据分析官网
  • 河北网站制作多少钱线上线下一体化营销
  • 上海网站开发培训百度账号人工客服