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

淄博网站设计方案阿里巴巴 网站设计

淄博网站设计方案,阿里巴巴 网站设计,个人做网站如何赚钱,考研资料找微信hyhyk1推广可以什么是AOF日志 AOF日志是redis为数据的持久化提供了的一个技术,日志里面记录着执行redis写命令。每当redis执行一条写命令的时候#xff0c;就会将该命令记录 到AOF日志当中。当redis启动的时候#xff0c;可以加载AOF日志中的所有指令#xff0c;并执行这些指令恢复所有的… 什么是AOF日志 AOF日志是redis为数据的持久化提供了的一个技术,日志里面记录着执行redis写命令。每当redis执行一条写命令的时候就会将该命令记录 到AOF日志当中。当redis启动的时候可以加载AOF日志中的所有指令并执行这些指令恢复所有的数据。 在 Redis 中 AOF 持久化功能默认是不开启的需要我们修改 redis.conf 配置文件中的以下参数 Redis 是先执行写操作命令后才将该命令记录到 AOF 日志里的  优点先执行写操作命令再记录日志的话只有在该命令执行成功后才将命令记录到 AOF 日志里这样就不用额外的检查开销不会出现语法错误等问题保证记录在 AOF 日志里的命令都是可执行并且正确的 缺点执行写操作命令和记录日志是两个过程那当 Redis 在还没来得及将命令写入到硬盘时服务器发生宕机了这个数据就会有丢失的风险 写入AOF日志的过程 Redis 执行完写操作命令后会将命令追加到 server.aof_buf 缓冲区然后通过 write() 系统调用将 aof_buf 缓冲区的数据写入到 AOF 文件此时数据并没有写入到硬盘而是拷贝到了内核缓冲区 page cache等待内核将数据写入硬盘 redis.conf 配置文件中的 appendfsync 配置项可以有以下 3 种参数可填 Always这个单词的意思是「总是」所以它的意思是每次写操作命令执行完后同步将 AOF 日志数据写回硬盘Everysec这个单词的意思是「每秒」所以它的意思是每次写操作命令执行完后先将命令写入到 AOF 文件的内核缓冲区然后每隔一秒将缓冲区里的内容写回到硬盘No意味着不由 Redis 控制写回硬盘的时机转交给操作系统控制写回的时机也就是每次写操作命令执行完后先将命令写入到 AOF 文件的内核缓冲区再由操作系统决定何时将缓冲区内容写回硬盘。 Always 策略的性能比较差可靠性高尽可能保证数据不会丢失 Everysec策略性能适中宕机会丢失一秒的数据 No策略性能良好宕机会丢失较多的数据 AOF重写机制 AOF 日志是一个文件随着执行的写操作命令越来越多文件的大小会越来越大。 其中AOF日志中 Redis 为了避免 AOF 文件越写越大提供了 AOF 重写机制当 AOF 文件的大小 超过所设定的阈值后Redis 就会启用 AOF 重写机制来压缩 AOF 文 件。 AOF重写机制 读取当前数据库中的所有键值对然后将每一个键值对用一条命令记录到「新的 AOF 文件」 作用 尽管某个键值对被多条写命令反复修改最终也只需要根据这个「键值对」当前的最新状态然后用一条命令去记录键值对代替之前记录这个键值对的多条命令这样就减少了 AOF 文件中的命令数量。最后在重写工作完成后。最后在重写工作完成后将新的 AOF 文件覆盖现有的 AOF 文件。 为什么重写 AOF 的时候不直接复用现有的 AOF 文件而是先写到新的 AOF 文件再覆盖过去 如果 AOF 重写过程中失败了现有的 AOF 文件就会造成污染可能无法用于恢复使用。 AOF后台重写 当 触发 AOF 重写时比如当 AOF 文件大于 64M 时就会对 AOF 文件进行重写这时是需要读取所有缓存的键值对数据并为每个键值对生成一条命令然后将其写入到新的 AOF 文件重写完后就把现在的 AOF 文件替换掉。这个过程其实是很耗时的所以重写的操作不能放在主进程 所以Redis 的 重写 AOF 过程是由后台子进程 bgrewriteaof 来完成的这样做有两个作用 子进程进行 AOF 重写期间主进程可以继续处理命令请求从而避免阻塞主进程父进程 使用fork 创建子进程时父子进程是共享内存数据的不过这个共享的内存只能以只读的方式而当父子进程任意一方修改了该共享内存就会发生「写时复制」所以子进程在执行后台重写是不影响父进程。 子进程是怎么拥有主进程一样的数据副本的呢 当父进程 使用fork 创建子进程的时候会将父进程中的页表 复制给子进程因此父子进程它们的共享一块物理内存。 写时复制顾名思义在发生写操作的时候操作系统才会去复制物理内存这样是为了防止 fork 创建子进程时由于物理内存数据的复制时间过长而导致父进程长时间阻塞的问题。 重写子进程只会对这个内存进行只读重写 AOF 子进程会读取数据库里的所有数据并逐一把内存数据的键值对转换成一条命令再将命令记录到重写日志新的 AOF 文件 重写 AOF 日志过程中如果主进程修改了已经存在 key-value此时这个 key-value 数据在子进程的内存数据就跟主进程的内存数据不一致了这时要怎么办呢 Redis 设置了一个 AOF 重写缓冲区这个缓冲区在创建 bgrewriteaof 子进程之后开始使用 在重写 AOF 期间当 Redis 执行完一个写命令之后它会同时将这个写命令写入到 「AOF 缓冲区」和 「AOF 重写缓冲区」。 当子进程完成 AOF 重写工作扫描数据库中所有数据逐一把内存数据的键值对转换成一条命令再将命令记录到重写日志后会向主进程发送一条信号。 主进程收到该信号后会调用一个信号处理函数该函数主要做以下工作 将 AOF 重写缓冲区中的所有内容追加到新的 AOF 的文件中使得新旧两个 AOF 文件所保存的数据库状态一致新的 AOF 的文件进行改名覆盖现有的 AOF 文件。
http://www.huolong8.cn/news/224718/

相关文章:

  • 摄影网站开发的意义佛山微信网站设计
  • 响应式商品展示的网站源码网站服务器的功能
  • 银川网站开发制作做网站许昌
  • 套餐型网站建设合同网站开发要用cms
  • 免费做网站自助建站建一个个人网站要多少钱
  • es网站开发泉州app网站开发价格低
  • 网站建设费用能否计入广告费微信 微网站开发
  • 网站开发行业标准总部在深圳的互联网公司
  • 合肥做网站建设网站开发不用jsp
  • 福建省百川建设发展有限公司网站工业设计公司推荐
  • 上海松一网站建设网站 建设 价格表
  • 东营做网站多少钱学校网站规划方案
  • 太原网站建设-中国互联网站设计建设公司联系方式
  • 免费视频素材网站有哪些网站开发微信支付接入
  • 电子商务网站接口费率多种郑州网站建设
  • 贵州省住房和城乡建设厅官方网站水果网站策划方案
  • 顺德医疗网站建设建筑网360
  • 网站开发后端 书网站建设一条龙全包seo
  • 做外贸网站连江建设局网站
  • 大牌网站设计网站建设文件名
  • 个人网站怎么快速推广手机模板的网站
  • sever2012 网站建设做个普通网站多少钱
  • 九州建网站做我女朋友好不好手机网站
  • 阿里网站怎样做seo四川 网站建设
  • 温州大都市建设开发有限公司网站网站搜索引擎提交
  • 网站建设方案书1500字cms进行网站开发
  • 一键建站酒店如何做好线上营销
  • 淘气堡网站建设分销系统源代码
  • 北京移动端网站龙口网络公司
  • 用C语言做网站登录界面哪里有网站建设的文章