redis aof日志持久化
一、aof的原理
问题:
- 1、每个命令重写一次aof?
- 2、某个key修改100次,产生100行记录,aof文件会很大,怎么解决?
aof重写(简化)
二、aof的配置
appendfsync always #每一个命令,都立即同步到aof安全,速度慢
appendfsync everysec #折衷方案,每秒写一次
appendfsync no #写入工作交给操作系统,由操作系统判断缓冲区大小统一写到aof同步频率低,速度快
aof重写策略:
1、bgrewriteaof命令
2、aof重写配置
auto-aof-rewrite-percentage 100 #aof文件大小比起上次重写时的大小,增长率100%时重写
auto-aof-rewrite-min-size 64mb #aof文件,至少超过64M重写
appendonly yes #是否打开aof日志功能,默认是no,如果需要改为yes即可
no-appendfsync-on-rewrite yes #正在导出rdb快照的过程中,要不要停止同步aof
三、解释
在dump rdb过程中,aof如果停止同步,会不会丢失数据
答:不会,所有的操作换存在内存的队列里,dump rdb完成后统一操作
aof重写是指什么?
答:aof重写是指把内存中的数据,逆化成命令,写入到.aof日志里,以解决aof日志过大的问题
如果rdb文件和aof文件都存在,优先用谁来恢复数据?
答:aof
rdb和aof是否可以同时使用?
答:可以的,而且推荐这么使用
恢复时,rdb和aof哪个快?
答:rdb快,因为其是数据的内存映射,直接载入到内存中,而aof是命令,需要逐条执行
相关文章
- rdb快照持久化
一、持久化的方式 什么是持久化:redis所有数据保存在内存中,对数据的更新将异步保存到磁盘上。 持久化:即把数据存储于断电后不会丢失的设备中,通常是硬盘。 常见的持久化方式:主从:通过从服务器保存
- php配置加载器
配置加载器 当我们使用App::cfg系列方法获取配置时,wulaphp是通过配置加载器先加载配置然后再返回配置项对应值的(当然可以返回整个配置数组)。配置加载器ConfigurationLoade
- 虚拟环境-virtualenv
在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip安装到Python3的site-packages目录下。 如果我们要同时开发多个应用程序,那
- aof恢复与rdb服务器迁移
一、不小心flushall或flushdb了怎么办??? 只有aof还不够。 因为如果发生重写,aof文件里就什么都没有了。 所以要及时shutdown nosave,防止aof重写!!! 然后将a
- 高并发下的分布式锁
public String deductStrck() throws InterruptedException{ String lockKey = "product_001"; //用
随机推荐
- rdb快照持久化
一、持久化的方式 什么是持久化:redis所有数据保存在内存中,对数据的更新将异步保存到磁盘上。 持久化:即把数据存储于断电后不会丢失的设备中,通常是硬盘。 常见的持久化方式:主从:通过从服务器保存
- php配置加载器
配置加载器 当我们使用App::cfg系列方法获取配置时,wulaphp是通过配置加载器先加载配置然后再返回配置项对应值的(当然可以返回整个配置数组)。配置加载器ConfigurationLoade
- 虚拟环境-virtualenv
在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip安装到Python3的site-packages目录下。 如果我们要同时开发多个应用程序,那
- aof恢复与rdb服务器迁移
一、不小心flushall或flushdb了怎么办??? 只有aof还不够。 因为如果发生重写,aof文件里就什么都没有了。 所以要及时shutdown nosave,防止aof重写!!! 然后将a
- 高并发下的分布式锁
public String deductStrck() throws InterruptedException{ String lockKey = "product_001"; //用