您的位置:首页 > 数据库 > Redis

Redis主从备份以及key的过期时间配置

2016-04-21 19:04 721 查看

1.Redis的key的过期时间设置

今天把之前的redis数据库又整理了一遍,发现redis存储的数据如果长时间不被set就会一直存在占用空间,因此需要设置一下key的过期时间处理。

Redis过期时间的设置可以使用expire函数进行设置。

redis.expire(key, expiration)

要注意的是如果对key使用set或del命令,就会移除expire time。

2.Redis的主从备份

redis怎么进行主从复制呢?redis复制主要是通过master server持久化的rdb文件实现的。master server 先dump出内存快照文件,然后将rdb文件传给slave server,slave server 根据rdb文件重建内存表。redis复制过程如下:

1、slave server启动连接到master server之后,salve server主动发送SYNC命令给master server

2、master server接受SYNC命令之后,判断,是否有正在进行内存快照的子进程,如果有,则等待其结束,否则,fork一个子进程,子进程把内存数据保存为文件,并发送给slave server

3、master server子进程进程做数据快照时,父进程可以继续接收client端请求写数据,此时,父进程把新写入的数据放到待发送缓存队列中

4、slave server 接收内存快照文件之后,清空内存数据,根据接收的快照文件,重建内存表数据结构

5、master server把快照文件发送完毕之后,发送缓存队列中保存的子进程快照期间改变的数据给slave server,slave server做相同处理,保存数据一致性

6、master server 后续接收的数据,都会通过步骤1建立的连接,把数据发送到slave server

需要注意:slave server如果因为网络或其他原因断与master server的连接,当slave server重新连接时,需要重新获取master server的内存快照文件,slave server的数据会自动全部清空,然后再重新建立内存表,这样会让slave server 启动恢复服务比较慢,同时也给master server带来较大压力,可以看出redis的复制没有增量复制的概念,这是redis主从复制的一个主要弊端,在实际环境中,尽量规避中途增加从库。

主要区别就是slave要在之前redis.conf配置文件的基础上增加一行slaveof 115.159.212.100 6379,其中115.159.212.100是我的主redis的IP地址。

主配置文件:

将所有的bind的配置注释掉,代表绑定监听任意主机的6739端口,其中包括115.159.212.100。

从配置文件:



测试过程如下所示:

(1)在主redis上运行redis并set数据。





(2)在从redis上运行redis并get该字段值。





(3)从redis的日志。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: