目录:
(1)Redis主从讲解
(2)Redis主从复用-读写分离
(3)Redis主从复用-哨兵配置
(4)Redis集群
(1)Redis主从讲解
使用Redis的优点:使用非常简单
缺点:以为只有一台吗,比如说读的操作,和写的操作set和get都是在一个服务器上面的,访问量比较大的时候呢读和写的压力比较大
当Redis挂掉的时候,整个Redis就没有办法用了,达不到所谓的高可用,和我们之前学习Zookper的时候,我们之前是搭了一个集群,提高了它的高可用,我们Redis也可以搞一个集群,Redis除了搞集群,它还有一个主从的概念
主从概念:就好比人工窗口:既可以买票也可以取票,它是主节点。自动取票机:只能取票,相当于从节点
主写分离:主节点负责写和读,从服务器只负责读
如何通信:通过ping来确保每个ping
通过发布与订阅机制:
主服务器写入数据的时候,就会发布订阅,把数同步到从服务器,所以主服务器和从服务器是一模一样的,就想窗口和自定取票机的数据是一样的
(2)Redis主从复用-读写分离
新建3个目录:
把redis赋值一份到conf目录下,作响应的修改
创建通用的配置文件:redis-commen.conf
being进行响应的修改 :
注释bind 127.0.0.1
保护模式protected-mode no
注释端口号 port 6379
后台启动daemonize yes
注释进程文件 pidfile /var/run/redis_6379.pid
注释日志logfile “”
注释dbfilenaem dump.rdb
修改目录:dir /opt//redis/data
从服务器访问主服务器的访问密码:masterauth root
访问的密码:requirepass root
新建3个空白配置文件:
vim redis6379.conf:输入响应内容 主节点
vim redis6380.conf:从节点
vim redis6381.conf:从节点
启动3个服务器:
查看主从状态,启动3个窗口开3个客户端,连3个服务器
在主节点下,输入查看主从信息的命令:
在从节点下查看,输入查看主从信息的命令:
在主节点存入一个值:
从节点进行获取:
从服务器默认设置只能读不能写
(3)Redis主从复用-哨兵配置
读写分离相对于单独的服务器而言,有它的优点,它分散了读的压力,提高了可用性,当一个从服务器挂机的时候呢,主服务器和其他从服务器依赖存在,依赖可以提供服务,但是它只是提供了一定的可用性,刚才我们只是说的是从服务器挂机,但是我们主服务器挂机怎么办呢?从服务器依然可以读,但是读的只是之前的数据,为了解决这个问题redis又提供了哨兵的功能 :
比如说有3个哨兵,他们去监控主从复用的环境,发现主服务器挂掉之后呢,他们从新选取下面的从服务器一个变成一个新的主服务器,让这个新的主服务器去提供读写能力,当你之前的主服务器,重新启动后它会变成从服务器
复制哨兵配置文件sentinel.conf
改一下名字跟上面一样先建公用的配置文件,人后在建私有文件再引入
注释端口 port:26379
后台启动 daemonize yes
注解进程文件 pidfile /var/run/redis-sentinel.conf
注释日志文件 logfile “”
下面这两个
30秒没有联通,哨兵才进行选举
创建3个:
并进行修改:
主备切换:
启动哨兵:
查看日志:tail -f
演示主服务器宕机:杀死6379的进程号:
查看从服务器:
在30秒后进行选举:
为6381位主服务器
重新启动6379,它变成了从服务器了
其他的从服务器:
查看6381:他变成主服务器
(4)Redis集群
通过上面的过程,通过哨兵提高了可用性,但是还有问题,我们写的压力目前还没有分散掉,主服务器的数据12万条数据,从服务器的数据量也有12万数据
通过搭建集群来存储大量数据
搭建Redis集群
集群也存在缺点:搭建的越多,换的也越多,东西越多越复杂,服务器越多,成本越高,在实际中要根据情况进行选择什么环境