1 Redis运维
1.1 持久化
redis会自动的把内存的数据写入到磁盘上。(因为当服务器宕机内存数据就会丢失,所以redis把内存的数据保存一份到磁盘上,做一个备份。)这里就是为什么把redis称为数据库的原因。
1.1.1 RDB
1)持久化机制:指定的时间间隔内将内存中的数据集以快照写入磁盘
2)RDB持久化方式优劣势
优势:整个Redis数据库将只包含一个文件,这对于文件备份而言是非常完美的
劣势:rdb是以每隔一段时间进行一次快照进行的数据持久,如果一旦在这一时间段出现服务器故障,将会灾难性的。
1.1.2 AOF
1)持久化机制:以日志形式记录服务器每一个操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。
2)AOF持久化方式优劣势:
优势:Redis中提供了3中同步策略,即每秒同步、每修改同步和不同步
修改同步:每修改一次同步一次,对于性能的消耗非常大。
每秒同步:每秒钟进行的操作进行一次同步
不同步
劣势:对于相同数量的数据集而言,AOF文件通常要大于RDB文件,并且根据同步策略的不同,AOF在运行效率上往往会慢于RDB
1.1.3 RDB与AOF配置
1)RDB持久化配置(修改redis.conf文件)注:标红为配置文件修改部分
deamonize 已进程的形式启动程序改为:yes
timeout 客户端没有操作就中断服务 0不中断
RDB快照的配置
database 默认有多少个库 16个库
save 900 1 每900秒有一次操作就快照一次
rdbcompression 对快照进行压缩 yes
dbfilename 这里可以修改dump.rdb的名字
dir ./ 默认生成当前目录(目录可以修改)
2)AOF持久化的配置(修改redis.conf文件)
appendonly no改为yes
appendfsync 同步写入数据的策略 always:每修改一次记录一条 everysec:每秒
no-appendfsync-no-rewrite no 在重复写入的时候不同步,只记录一次
percenttage 100 上次的写入内容的百分之100的时候整理一次
min-size 64mb 达到64mb的时候整理一次写入
3)其他命令
ps -ef | grep redis 查看进程服务是否启动
kill -9 3004 杀掉进程
bgrewriteaof 手动重写aof
requirepass password 配置redis访问密码
auth password 客户端登陆输入访问密码
1.2 主从复制
什么是主从复制:如果主服务器宕机,从服务器可以替代主服务器来为客户端服务,相当于备份。并且可以把持久化的配置在从服务器端来减轻主服务器的压力,主服务器不做持久化,由从服务器负责。
1)配置说明(读写分离):
master:主服务器配置写入操作,不做持久化。
slave:从服务器配置只读数据和持久化数据来分担主服务器的压力。
2)配置内容:
复制一份redis.conf修改端口,作为从服务器:cp redis.confredis6380.conf 拷贝一份文件到当前目录,主服务器就不需要rdb、aof,由从服务器分担主服务器压力
vi redis6380.conf 编辑该文件
pidfile 进程.pid文件修改为 redis6380.conf
修改端口号为 6380
slaveof 主服务器ip 端口号6379
slave-read-only yes
dbfilename dump6380.rdb
也可以修改appendonly6380.aof
配置 dir /redis-slave,编辑完成退出后。这里使用到redis-slave所以需要创建redis-slave目录 mkdir redis-slave
3)运维注意事项
每次slave断开后,再次连接master时,都要master全部dump出来rdb然后再同步aof,即同步的过程需要重新来一遍,所以要记住,多台slave最好不要一下都启动起来
4)redis主从&持久化项目架构图:
1.3 常用运维命令以及注意事项
1.3.1 运维命令
DBSIZE Key的数量
FLUSHALL 清空当前服务器管理的数据库中的所有Keys
FLUSHDB 清空当前数据库中的所有Keys
SAVE RDB持久化模式
SHUTDOWN停止server端
SLAVEOF host port手动配置当前为从服务器
monitor 打开控制台
client kill 关闭某个客户端
sync 手动同步
Bgrewriteaof 后台写aof
Bgsave 后台写rdb
shutdown save|nosave 关闭服务器---保存/不保存
info 显示服务器信息
1.3.2 注意事项
如果不小心flushall了,应该首先关闭redis服务进程shutdown nosave
然后编辑aof然后在aof日志文件里面的flashall三行标识符删除掉
重启