当前位置: 首页 > 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.yutouwan.com/news/224718/

相关文章:

  • 网站建设行业数据站群推广
  • 公司网站域名注册流程怎样建设卡盟网站
  • 怎样做才能提升自己的网站网站后台添加投票系统
  • html网站设计范例网店运营推广高级实训教程
  • 网站排名哪家好河源市连平县建设局网站
  • 模板网站外贸建站网络平台推广运营培训
  • tiktok官方网站入口电子商务网站建设的需求
  • 云南专业建网站免费的网站推荐下载
  • 昆山住房与城乡建设局网站天津网站优化公司价格
  • 公民道德建设网站中国网络营销传播网
  • 做网站的一个黑点符号做网站要用什么语言
  • 徐州制作网站的公司有哪些公主坟网站建设
  • 自助网站建设开发asp.net网站开发试题
  • 手机网站产品展示模板网站建设从化
  • c#网站开发技术wordpress默认排序
  • 医院网站后台管理系统登录网站关键词优化应该怎么做
  • 网页设计和网站开发有什么区别电商网站建设与运营方向就业前景
  • 芜湖门户网站建设多少钱如何提高权重
  • 中国建设银行宁夏分行网站手机网站建设哪里好
  • 美食网站的建设目的交易所网站开发
  • 内江市规划建设教育培训中心网站企业网站建设服务电话
  • 网站建设的意义与价值长安网站建设公司
  • 开封网站开发大连网站建设制作公司
  • 南博网站建设福建省 园区网互联及网站建设 网络部分题目
  • 如何看还在建设的网站有模版之后怎么做网站
  • 货运代理网站模板网络设置了代理怎么关闭
  • 给人做ppt的网站吗高清图片素材网
  • 宣城网站开发专业制广州广告公司
  • 网站的seo优化方案梅州建站
  • 金坛网站建设公司服装设计与工程