1.redis持久化
redis的持久化有两种方式,一种是aof,另一种是rdb。
1.1.rdb
rdb是指redis-server会在指定的时间间隔内将内存中的数据以快照的形式写入磁盘,其实际的操作过程是folk一个子进程将数据写入文件(dump.edb),写入成功后,临时文件就替换掉了最终的文件。
我们可以在redis的配置文件redis.conf中找到快照的时间间隔,我们以云服务器中的redis为例,
cd /usr/local/redis # 进入redis安装目录
vim redis.conf # 进入配置文件
/save 900 # 直接输入/save 900,查找save 900的位置
我们会找到如下内容,
save 900 1 # 表示900秒内1个key被修改,则发起快照保存
save 300 10 # 表示300秒内10个key被修改,则发起快照保存
save 60 10000 # 表示60秒内10000个key被修改,则发起快照保存
1.2.aof
aof是指redis数据库中的所有删除、查询操作将会以日志的形式记录下来。一旦服务器重启,那么日志中的命令将会被重新执行,恢复数据到内存中。
redis-cli发送命令给redis-server,redis-server同步写入命令到appendonly.aof日志中。
因为aof默认关闭,我们同样需要进入到配置文件redis.conf中进行修改。
cd /usr/local/redis
sudo vim redis.conf
/appendonly # 进入后查找appendonly出现的位置
# 我们会查找到appendonly no
i # 输入i进入编辑模式
# 将appendonly no修改为appendonly yes
# 按一下ESC,退出编辑模式
:wq! # 直接输入:wq!,并回车,保存并退出
之后,我们需要重启redis服务,
ps -aux | grep redis # 获取redis进程的PID
#例如,获取到的数据如下,
#root 14430 0.1 0.2 59848 4588 ? Ssl Mar26 6:00 ./src/redis-server 0.0.0.0:6379
#root 14983 0.0 0.0 14428 1084 pts/0 S+ 19:59 0:00 grep --color=auto redis
# 这里14430和14983为redis的PID
kill -9 14430 # 关闭进程
kill -9 14983 # 关闭进程
/usr/local/redis/src/redis-server /usr/local/redis/redis.conf # 以配置文件redis.conf的方式启动redis-server
2.redis主从
当服务器运行压力过大时,我们可以通过让一部分服务器负责写数据,另一部分服务器负责读数据的方式缓解数据库的压力。
因为负责写数据的服务器获得的权限高于负责读数据的服务器,因此,我们将负责写数据的服务器称之为主服务器,将负责读数据的服务器成为从服务器。