sentinel小结、互联网冷备和热备、Sentinel整合Springboot、Redis内置集群

sentinel三大任务:
    监控:不断检查你的主服务器和从服务器是否运作正常
    提醒:当被监控的某个redis服务器出现问题时,sentinel可以通过API向管理员或者其他应用程序发送通知
    自动故障迁移:当一个主服务器不能正常工作时,sentinel会开始一次自动故障转移操作,它会将失效主服务器的其中一个服务器升级为新的主服务器,并让失效主服务器的其他从服务器改为复制新的主服务器。  当客户端试图连接失效的主服务器时,集群也会向客户端返回新主服务器的地址,使得集群可以使用新主服务器代替失效服务器

互联网冷备和热备
    冷备(RDB):发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库
        优点:快速备份(只需拷文件)、低度维护,高度安全
        缺点:单独使用只能提供"某一节点上"的恢复、冷备过程数据库必须关闭(不能做其他工作)
    热备(AOF):数据库运行的情况下,采用归档模式(archivelog model)方式备份数据库的方法
        优点:备份时间短、备份时数据库仍可使用、秒级恢复
        缺点:若热备份不成功,所得结果不可用于时间点的恢复、难于维护,要非常小心


Sentinel整合Springboot
    cd /usr/local/redis/bin/
    ./redis-server redis.conf
    ./redis-cli -h 192.168.200.130 -p 63xx
    ps -ef | grep redis
    kill -9 xxx xxx   强行关闭
    NOAUTH Authentication required.——> 在连接端口后:auth 123456 以密码登录
        或者:./redis-cli -h 192.168.200.130 -p 63xx -a 123456

1.设置Redis密码  vi redis.conf
    设置密码  requirepass 123456
    设置访问主服务器密码  masterauth 123456

2.在sentinel哨兵的配置文件sentinel.conf中添加设置
    sentinel auth-pass mymaster 123456
    //启动sentinel:/root/redis-4.0.14/src/redis-sentinel sentinel.conf
启动成功
root@pinyoyougou-docker redis]# /root/redis-4.0.14/src/redis-sentinel sentinel.conf
4861:X 31 Jul 13:31:07.936 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
4861:X 31 Jul 13:31:07.936 # Redis version=4.0.14, bits=64, commit=00000000, modified=0, pid=4861, just started
4861:X 31 Jul 13:31:07.936 # Configuration loaded
4861:X 31 Jul 13:31:07.937 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 4.0.14 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379
 |    `-._   `._    /     _.-'    |     PID: 4861
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

4861:X 31 Jul 13:31:08.238 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
4861:X 31 Jul 13:31:08.238 # Sentinel ID is f87f8b1c57abc53e3e8afdfccd2ffe7b8440af29
4861:X 31 Jul 13:31:08.238 # +monitor master mymaster 192.168.200.130 6379 quorum 1


3.在Spring创建新的marven工程:demo_sentinel
    1.pom
    2.yml
    3.启动类
    4.test类—>将数据写入redis中
        @Autowired
           private StringRedisTemplate redisTemplate;
        redisTemplate.opsForValue().set("test", "redis");
            String test = redisTemplate.opsForValue().get("test");


Redis内置集群

#进入redis安装目录:cd /usr/local/redis
#复制redis:mkdir cluster
    cp -R bin/ cluster/node1
#删除持久化文件:cd cluster/node1
    rm -rf dump.rdb
    rm -rf appendonly.aof
#删除原来的配置文件:rm -rf redis.conf
#复制新的配置文件:cp /root/redis-4.0.14/redis.conf ./
#修改配置文件:vi redis.conf

集群环境redis节点的配置文件如下:
#不能设置密码,否则集群启动时会连接不上
#Redis服务器可以跨网络访问
    bind 0.0.0.0
#修改端口号
    port 7001
#Redis后台启动
    daemonize yes
#开启集群
    cluster-enabled yes
#集群的配置,配置文件首次启动自动生成
    cluster-config-file nodes.conf
#请求超时
    cluster-node-timeout 5000

第一个redis节点node1准备好之后,再复制5份 
    #cd /usr/local/redis/cluster
    cp -R node1/ node2
修改六个节点的端口号为7001~7006,修改redis.conf配置文件即可

编写启动节点的脚本:
    vi start-all.sh
内容为:
    cd node1
    ./redis-server redis.conf
    cd /usr/local/redis/cluster
    cd node2
    ./redis-server redis.conf
    cd /usr/local/redis/cluster
    cd node3
    ./redis-server redis.conf
    cd /usr/local/redis/cluster
    cd node4
    ./redis-server redis.conf
    cd /usr/local/redis/cluster
    cd node5
    ./redis-server redis.conf
    cd /usr/local/redis/cluster
    cd node6
    ./redis-server redis.conf
    cd /usr/local/redis/cluster
设置脚本的权限,并启动:
    chmod 744 start-all.sh
    ./start-all.sh

查看效果:ps -ef | grep redis

启动redis集群
redis集群的管理工具使用的时ruby脚本语言,安装集群需要ruby环境,先安装ruby环境:
#安装ruby
    yum -y install ruby ruby-devel rubygems rpm-build
#升级ruby版本,redis4.0.14集群环境需要2.2.2以上的ruby版本
    yum install centos-release-scl-rh
    yum install rh-ruby23 -y
    scl enable rh-ruby23 bash
#查看ruby版本
    ruby -v

下载复合环境要求的gem,下载地址:https://rubygems.org/gems/redis/versions/4.1.0
(即文件中的redis-4.1.0gem),直接上传安装即可
安装命令:gem install redis-4.1.0.gem

进入redis安装目录,使用redis自带的集群管理脚本,执行命令
#进入redis安装包
    cd /root/redis-4.0.14/src/
#查看集群管理脚本
    ll *.rb
#使用集群管理脚本启动集群
    ./redis-trib.rb create --replicas 1 192.168.200.130:7001 192.168.200.130:7002 192.168.200.130:7003 192.168.200.130:7004 192.168.200.130:7005 192.168.200.130:7006

集群的数据分配:redis集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分哈西。可以使用命令查看集群信息:
    ./redis-cli -p 7001 cluster nodes | grep master


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值