美文网首页
Redis-sentinel集群搭建

Redis-sentinel集群搭建

作者: 编程人生 | 来源:发表于2024-01-03 18:29 被阅读0次

    本篇主要介绍redis 高可用哨兵集群搭建.

    我们先想一个问题:哪种场景适合用redis缓存?我在一本书中看到,是这么写的,主要有以下几种场景:

        1.大部分是读业务数据的系统

        2.需要快速响应的系统

        3.需要预备数据(在系统或者某项业务前准备那些经常访问的数据到缓存中,以便系统开始能够快速响应,也称为预热数据)的系统

        4.对数据安全和一致性要求不太严格的系统

    不适合使用缓存的场景有哪些?

        1.读业务数据少且写入频繁的系统

        2.对数据安全和一致性要求严格的系统

    下面进入正题:

         Redis中,缓存的高可用分为两种,一种是哨兵,另外一种是集群.此篇搭建一个哨兵集群.步骤如下:

        1.引入spring-boot-redis 依赖

    说明一下: Lettuce 是一个可伸缩的线程安全的Redis客户端,多个线程可以共享一个Redis连接,因为线程安全,所以牺牲了一部分性能.

        一般来说,使用缓存并需要很高的线程安全,更注重的是性能.Jedis是一种多线程非安全的客户端,具备更高的性能.

        2.多哨兵模式图解

     3.修改三台虚拟机上 redis.conf 文件

    主节点:

        #禁用保护模式    

        protected-mode no

        #修改可以访问的ip ,  0.0.0.0 代表可以跨域访问

        bind 0.0.0.0     

        #设置Redis服务密码

        requeirepass 123456 

    两台从节点:

        protected-mode no

        #修改可以访问的ip ,  0.0.0.0 代表可以跨域访问

        bind 0.0.0.0 

        #设置Redis服务密码

        requeirepass 123456 

        # 配置从哪里复制数据,也就是配置主节点服务器

        replicaof 192.168.78.186:6379

        # 配置主Redis 服务器密码

        masterauth 123456

    三台哨兵配置文件 sentinel.conf 修改如下

        #禁止保护模式

          protected-mode no

        #配置主监听服务器,这里sentinel monitor 代表监控

        # redis-master 代表服务器名称,可以自定义

        #192.168.78.186 代表监控空的主服务器

        #6379 代表端口

        #2 代表只有2个或者2个以上的哨兵认为主服务器不可用的时候,才进行客观下线.

        sentinel monitor redis-master 192.168.78.186:6379 2

         # sentinel auth-pass 定义服务的密码

         # redis-master服务 的名称

         # 123456 服务器的密码

         sentinel auth-pass redis-master 123456

    4.启动Redis服务 

    到redis的安装路径下 ./src/redis-server ./redis.conf

    5.启动哨兵服务

    到redis的安装路径下 ./src/redis-sentinel ./sentinel.conf

    注意 这里按顺序启动 redis 主节点 redis 从节点1 redis从节点 2 ,然后在启动三台哨兵服务

    6. springboot 环境中配置 properties hup Yaml 文件

        7.编写测试代码

        这里方便 直接写在springboot的启动类里.

        8.测试结果, 发现三台redis 服务器都成功写入成功和读取成功

       浏览器测试结果

        9.注意事项

        1.因为设置了redis访问密码,所以进入redis客户端时先输入auth 123456 进行认证, 否则会提示没有权限

        2.springboo它连接redis服务器提示连接超时,需要先关闭redis服务器防火墙

        3.springboot版本用的是2.3.7.RELEASE ,目前是3.x.x版本,jdk 至少需要17 或21才可以.

        4.本书内容主要来自:<<SpringCloud 微服务和分布式系统实践>>

    相关文章

      网友评论

          本文标题:Redis-sentinel集群搭建

          本文链接:https://www.haomeiwen.com/subject/vecvndtx.html