what?
在看到这三个字,你可能疑惑什么是持久化。持久化简单理解就是将内存的数据移动到硬盘中,它的存在是防止电脑突然断电或者故障时数据的丢失。持久化到硬盘中后,只要硬盘不坏,下次启动的时候就可以再次将持久化到硬盘的数据快速的加载到内存中去。当然为了防止硬盘的坏掉,也有另外一种技术来支持这种容错性,那就是主从复制。
Ways?
redis的持久化方式有两种方式:
一种是通过Rdb方式,一种是通过Aof方式。默认是使用Rdb方式。
Rdb方式:是通过快照的方式来将数据持久化到硬盘去。
Rdb:
how?
1.设置配置文件持久化快照的条件
2.持久化文件存储目录
Situation?
适用于内存数据丢失不严重的一些场景,像内存数据丢失造成的影响较大就不适用。
Problem?
非法关闭时,最后一次持久化的数据会丢失。
Aof:
What?
redis默认不是使用的这种方式。Aof的持久化方式是去操作一次redis数据库,将操作的记录存储到aof的持久化文件中去。
How?
1.在配置文件中开启该种方式的持久化。
2.aof文件存储名称
3.存储的目录
Aof文件存储的目录和rdb方式的一样。
主从复制
What?
有些情况下,硬盘可能坏掉,通过主从复制可以避免这种单点故障,相当于在从的服务器中保留了副本,这样使得数据有多份,即使有一个出故障了,还有其它地方有保留好的数据。这样就提高了容错性。
主redis有两个副本,从redis1和从redis2,即使主redis宕机了,还有从redis可以提供服务。主和两个从的始终保持数据的实时同步。主只能有一个,而从可以有多个。主从复制不会阻塞master.
How?
1.主机配置
无需配置
2.从配置
复制出一个从机
[root@itheima redis19]# cp bin/ bin2 –r
修改从机的redis.conf
语法:Slaveof masterip masterport
slaveof 192.168.242.137 6379
修改从机的port地址为6380
在redis.conf中修改
清除从机中的持久化文件
[root@itheima bin2]# rm -rf appendonly.aof dump.rdb
启动从机
[root@itheima bin2]# ./redis-server redis.conf
启动6380的客户端
[root@itheima bin2]# ./redis-cli -p 6380
主机一旦发生增删改操作,那么从机会将数据同步到从机中
从机不能执行写操作
127.0.0.1:6380> set s2 222 (error) READONLY You can't write against a read only slave. |