前言
前文介绍了Redis的安装以及使用Redis数据库的简单命令,本文介绍Redis存储数据的持久化策略,以及避免Redis单点存储数据遇到的问题。
一、什么是Redis的持久化?
Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。
二、Redis持久化策略
Redis持久化策略分为两种,RDB策略和AOF策略,默认是RDB策略,两种策略可单独使用也可结合起来使用。
1.RDB策略(存储数据)
RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的数据进行快照并持久化到硬盘。RDB持久化存储的是数据,下面对此进行验证:
save 900 1 #超过1个key被修改,需900秒,发起快照保存 save 300 10 #超过10个key被修改,需300秒,发起快照保存 save 60 10000 #超过10000个key被修改,需60秒,发起快照保存
思考:若存储时关闭服务或关闭电源RDB策略存储会发生怎样的问题?
2.AOF策略(存储命令)
默认Redis没有开启AOF持久化,需要改变redis/bin目录下的redis.conf配置文件,配置文件修改内容如下:
appendonly yes
AOF存储的是命令,下面对此进行验证:
- 修改redis.conf中对应内容(appendonly yes)
- 向redis中存储数据
如图所示: - 打开appendonlf.aof文档,显示存储命令
如图所示: - AOF在配置文件中存储数据的配置如下:
#appendfsync always #每次有数据修改,写入AOF文件。 appendfsync everysec #每秒钟同步一次,为AOF的缺省策略。 #appendfsync no #从不同步。高效但是数据不会被持久化。
思考:AOF策略有什么优缺点?
小结:
RDB
? 优点:让redis的数据存取速度变快
? 缺点:服务器断电时会丢失部分数据(数据的完整性得不到保证)
AOF
优点:持久化良好,能包证数据的完整性
? 缺点:大大降低了redis系统的存取速度
三、Redis的主从复制
思考:单机版的Redis存储数据会发生什么样的问题或者说为什么要进行主从复制? 答:当redis服务器的硬盘损坏了可能会导致数据丢失,如果通过redis的主从复制机制就可以避免这种单点故障
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
1.主从复制的过程
如图所示: 详细过程如下:
- slave (从)服务启动,slave 会建立和master (主)的连接,发送sync 命令。
- master启动一个后台进程将数据库快照保存到RDB文件中
- master 就发送RDB文件给slave
- slave 将文件保存到磁盘上,然后加载到内存恢复
- master把缓存的命令转发给slave
2.主从复制的特点
- 主Redis和从Redis数据保持一致
- 主Redis挂掉后,从Redis只能读,不能进行写的操作
3.主从复制的配置
主Redis无需配置,只需修改从Redis的配置文件即可
- 拷贝Redis
命令如下:
cd /usr/local
copy -r redis redis-6380
- 修改从redis-6380的redis.conf文件
port 6380 #修改端口 slaveof 192.168.175.134 6379 #配置从所属的主Redis的ip和端口号
- 分别开启主从Redis的服务,主从配置成功
总结
本文较详细地说明了Redis存储数据的RDB及AOF策略,以及对Redis主从复制的过程、特点及配置进行了说明。除此之外,还可对Redis搭建集群,实现更高的并发量。
|