Redis高级应用
1、密码防护
redis服务器默认是没有密码的,以下给redis服务器设置密码
配置过程:
① 修改配置文件
# vim /usr/local/redis/etc/redis.conf
② 重启redis
③ 客户端登陆,设置密码,两种方式:
a、客户端登陆时指定密码
b、交互模式下,使用auth命令设置密码
2、主从同步
redis主从复制过程:
a、slave与master建立连接,发送sync命令
b、master会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存
c、后台完成保存后,就将此文件发送给slave
d、slabe会将此文件保存到硬盘上
配置步骤:
① 主服务器给自己设置好密码即可( 关闭iptables 和 SELinux )
② 从服务器修改配置文件,用来连接主服务器
老版本: 从节点: #主服务器的IP和端口 slaveof <master-ip> <master-port> # 主服务器的密码(主服务器要设置好密码) masterauth <masterpass>
# 新版本 redis 5.* 以上: 主节点: 找到 bind 127.0.0.1 注释掉,或者修改为本地的IP地址(重启) 从节点: # 主服务器的IP和端口 replicaof <masterip><masterport> # 主服务器的密码(主服务器要设置好密码) masterauth <masterpass>
主节点:
从节点:
测试:
主节点创建,从节点查询
③ 重启从服务器,然后测试( 可通过info命令获取当前服务器身份类型 )
3、数据持久化
Redis是一个支持持久化的内存数据库,也就是说需要经常将内存中的数据同步到硬盘来保证持久化。
① snapshotting(快照)--默认方式
RDB持久化方式能够在指定的时间间隔对数据进行快照存储。是默认的持久化方式,这种方式是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。这种持久化方式被称为快照snapshotting(快照)。
触发机制:
过了900秒并且只要有1个key键值对发生了改变,就会触发save动作(即自动保存)
过了300秒并且有10个key键值对发生了改变,就会触发save动作
过了60秒并且至少有10000个key键值对发生了变化,也会触发save动作
结论:在redis.conf文件中 dir ./ 定义了数据库文件的存放位置,默认是当前目录。所以每次重启redis服务所在的位置不同,将会生成新的dump.rdb文件;建议服务器搭建完成时先修改快照文件保存位置。
② append-only file(aof)
使用AOF会让Redis更加耐久,可以使用不同的持久化策略:每次写的时候备份、每秒备份、五备份。使用默认的每秒备份策略,Redis的性能依然很好(备份是由后台线程及逆行处理的,主线程会尽力处理客户端请求),一旦出现故障,最多丢失1秒的数据。
配置方法:
1、打开Redis.conf配置文件开启AOF持久化,默认不使用AOF持久化(450行),将 no 改为 yes
# appendonly yes # appendfsync always # 有写操作,就马上写入磁盘,效率最慢,但是最安全 # appendfsync no # 不进行AOF备份,将数据交给操作系统处理,最快,最不安全
测试: 重启redis服务,登录client添加一个键值,退出然后ls命令查看下是否生成appendonly.aof。可以用cat查看