RDB和AOF结合使用
在前面我们已经介绍了Redis的持久化RDB和AOF。但是很多时候,我们需要考虑很多因素:服务器宕机数据丢失、持久化时的性能开销、持久化文件的大小以及数据恢复速度。RDB持久化,两次快照之间写入的数据可能会丢失,当写入流量较大且数据集也很大时,RDB中系统调用fork()的延迟和内存的开销也是一个问题。但是RDB比AOF文件占用的磁盘空间更小,并且从RDB中恢复数据的速度更快。事实上,我们可以同时启动这两个功能。
1、首先使用FLUSHALL命令清空数据
127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> BGREWRITEAOF #手动触发重写
Background append only file rewriting started
127.0.0.1:6379> BGSAVE #手动保存
Background saving started
2、查看RDB和AOF文件大小
[root@localhost redis]# ll appendonly.aof dump.rdb
-rw-r--r--. 1 root root 0 Aug 19 14:26 appendonly.aof
-rw-r--r--. 1 root root 92 Aug 19 14:26 dump.rdb
3、使用DEBUG POPULATE命令导入测试数据
127.0.0.1:6379> DEBUG POPULATE 100000
OK
127.0.0.1:6379> BGREWRITEAOF
Background append only file rewriting started
127.0.0.1:6379> BGSAVE
Background saving started
4、查看RDB和AOF文件大小
[root@localhost redis]# ll appendonly.aof dump.rdb
-rw-r--r--. 1 root root 4576803 Aug 19 14:27 appendonly.aof
-rw-r--r--. 1 root root 2277881 Aug 19 14:27 dump.rdb
5、查看AOF前20行信息
[root@localhost redis]# head -20 appendonly.aof
*2
$6
SELECT
$1
0
*3
$3
SET
$9
key:69082
$11
value:69082
*3
$3
SET
$9
key:54220
$11
value:54220
*3
6、查看AOF文件的最后10行信息
[root@localhost redis]# tail -10 appendonly.aof
key:25805
$11
value:25805
*3
$3
SET
$9
key:24460
$11
value:24460
7、将配置参数aof-use-rdb-preamble改为yes,然后使用BGREWRITEAOF命令触发AOF重写
127.0.0.1:6379> CONFIG GET aof-use-rdb-preamble
1) "aof-use-rdb-preamble"
2) "no"
127.0.0.1:6379> CONFIG SET aof-use-rdb-preamble yes
OK
127.0.0.1:6379> CONFIG GET aof-use-rdb-preamble
1) "aof-use-rdb-preamble"
2) "yes"
127.0.0.1:6379> BGREWRITEAOF
Background append only file rewriting started
8、查看RDB和AOF文件的大小
[root@localhost redis]# ll appendonly.aof dump.rdb
-rw-r--r--. 1 root root 2277881 Aug 19 14:33 appendonly.aof
-rw-r--r--. 1 root root 2277881 Aug 19 14:27 dump.rdb
9、可以使用vim查看AOF文件(这里不做展示)
总结
在默认情况下AOF文件比RDB文件占用的存储空间大,但是我们配置aof-use-rdb-preamble为yes后,来启用Redis4.x开始提供的新的混合持久化功能。开启该功能后,在重写AOF文件时,Redis首先会将数据集以RDB的格式存储到内存中并作为AOF文件的开始部分。在重写之后,Redis继续使用传统的AOF格式在AOF文件中记录写入命令。可以通过观察重写后的AOF文件头部和尾部来了解这种混合模式。如果启动了这种混合持久化,那么AOF文件的开头首先使用的是RDB格式,因为RDB压缩格式可以实现更快速的重写和加载数据文件,同时也保留AOF数据一致性更好的优点,所以Redis可以从混合持久化中获益。
在Redis4.x之前的版本,我们可以同时启用RDB和AOF来实现最好的数据安全。但是Redis4.x之后的版本哦们建议启用AOF和混合持久化。但是混合持久化的启动必须要启动AOF持久化,否则没有意义。
Redis的RDB转储和AOF重写不会同时进行。当Redis启动时,即便RDB和AOF持久化同时启用AOF、RDB文件都存在,则Redis总是会先加载AOF文件。这是因为AOF文件被认为能够提供更加好的数据一致性。当加载AOF文件时,如果启用了混合持久化,那么Redis将首先检查AOF文件的前5个字符。如果这5个字符为REDIS,那么该AOF文件就是混合格式。Redis服务器会先加载RDB部分,然后再加载AOF部分。
《血色湘西》瞿先生临死前的独白,振奋人心。
《是妈妈是女儿》聚焦母女间未曾言明的爱意,以书信对话的形式呈现出各自的内心独白,表达彼此的牵挂。黄绮珊与希林娜依·高用跨越时空、打开心扉、深情对唱的形式,将天下母女爱的寄语化作心灵的倾诉。黄绮珊的每一句话,每一个字都演绎出了妈妈对女儿的爱,而希林依娜·高把女儿对妈妈的爱由不理解到理解再到感恩演绎得淋漓尽致。
如何通过查询语句来查询某个数据的排名,本文主要介绍MySql和MongoDB两种数据库的查询方式来进行排名。
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
cfssl生成自签证书
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。