Linux网络服务-5-2-redis-2-高级应用

Linux网络服务-5-2-redis-2-高级应用

Scroll Down

Redis高级应用

1、密码防护

redis服务器默认是没有密码的,以下给redis服务器设置密码

配置过程:

① 修改配置文件

# vim /usr/local/redis/etc/redis.conf 

1.png

② 重启redis

2.png

③ 客户端登陆,设置密码,两种方式:

a、客户端登陆时指定密码

3.png

b、交互模式下,使用auth命令设置密码

4.png

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>  

主节点:

image.png

image.png

从节点:

image.png

image.png

测试:

主节点创建,从节点查询
image.png

image.png

③ 重启从服务器,然后测试( 可通过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备份,将数据交给操作系统处理,最快,最不安全

image.png

image.png

测试: 重启redis服务,登录client添加一个键值,退出然后ls命令查看下是否生成appendonly.aof。可以用cat查看

image.png

image.png