码迷,mamicode.com
首页 > 其他好文 > 详细

Redis入门指南(三)

时间:2019-08-27 00:39:37      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:丢失   客户   hal   重启   同步   客户端   阻塞   数据库   空间   

持久化

RDB方式:

rdb方式的持久化是通过快照完成的。符合一定条件时redis会自动将内存中的所有数据生成一份副本并存储在硬盘上,这个过程叫快照。以下几种情况会对数据进行快照:
  1 根据配置规则进行自动快照
  2 用户执行save 或 bgsve命令
  3 执行 flushall 命令
  4 执行复制时

  根据配置:save 900 1 ,在900秒内有一个及以上的键被更改则进行快照。
  savebgsave :当进行服务重启、手动迁移以及备份时我们要手动执行。
  - save : redis同步地进行快照操作,在快照执行过程中会阻塞所有来自客户端的请求。
  - bgsave:可以在后台异步地进行快照的操作,执行后会立即返回OK表示开始执行快照操作。如果想知道是否执行完成可以使用lastSave命令获取最近一次成功执行快照的时间。异步看下面原理。
  flushAll 命令:redis会清除数据库中所有数据,不管触发快照与否,只要自动快照条件不为空,就会执行一次。

  执行复制时:当设置了主从模式时,redis会在复制初始化时进行自动快中啊。

快照原理

  使用fork函数复制一份当前进程的副本(子进程)
  父进程继续接受并处理客户端发来的命令,而子进程开始将内存中的数据写入硬盘。
  写完所有数据,会该临时文件替代旧的RDB文件。
PS :redis重启后会读取 RDB 快照文件,将数据载入内存。

AOF方式:

使用redis存储非临时数据时
开启:默认没有开启,开启后每执行一条会更改数据,会写入硬盘的AOF文件。
AOF实现:达到一定条件,redis会重写AOF文件,节省空间,保留最后的数据。
同步硬盘数据:由于操作系统的缓存机制,数据并没有真正地写入硬盘,而是进入硬盘的缓存。默认情况下,系统30秒会执行一次同步。在这三十秒可能会导致数据丢失,通过参数 appendfsync设置可以每秒执行一次同步操作。
redis允许 同时开启 AOF 和 RDB , AOF 方式的持久化可能丢失的数据更少。

主从复制

集群

哨兵

Redis入门指南(三)

标签:丢失   客户   hal   重启   同步   客户端   阻塞   数据库   空间   

原文地址:https://www.cnblogs.com/RobertLionLin/p/11415862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!