目录

  • 集群
  • 集群搭建
  • 集群使用


集群

集群搭建

接上个博客的配置继续配置集群,所以需要删除一写多余的东西
上条博客链接

目标配置六个redis三主(6379,6380,6381)三从(6389,6390,6391)

  1. 删除rdb文件
  2. vi redis6379.conf 进入配置 然后删除多余部分并添加一些配置,最终结果就

前四个本来就有 五到七是新增配置文件 第八个是有密码需要写的
include /myredis/redis.conf
pidfile “/var/run/redis_6379.pid”
port 6379
dbfilename “dump6379.rdb”
cluster-enabled yes 打开集群模式
cluster-config-file nodes-6379.conf 设定节点配置文件名
cluster-node-timeout 15000 设定节点失联时间,超过该时间(毫秒),集群自动进行主从切换。
这两个提前设置好 不然后面集群转换会很麻烦
requirepass xxx
masterauth xxx

  1. 把6380,6381删掉(rm -rf redis638*) 直接复制redis6379.conf文件五次 (cp redis6379.conf redis6381.conf)这样更快
  2. 打开复制的五个的conf :%s/6379/6380 全局替换 其他四个也是
  3. 启动redis-server redis6379.conf
  4. 查看是否都正常启动 ps -ef | grep redis
  5. 都正常之后进去 先进入下载redis的目录 我是opt cd /opt
  6. ls 看看是否存在 在的话 进去你下载的redis cd redis-6.2.5
  7. 进入src cd src
  8. 输入合体命令
    请用真实IP地址
    –replicas 1 采用最简单的方式配置集群,一台主机,一台从机,这里正好三组。
redis-cli --cluster create --cluster-replicas 1 -a 密码 172.18.17.215:6379 172.18.17.215:6380 172.18.17.215:6381 172.18.17.215:6389 172.18.17.215:6390 172.18.17.215:6391


询问就输入yes

成功之后是这样的

java redis集群 密码 redis集群连接带密码_java redis集群 密码

集群使用

  1. 使用集群连接 redis-cli -c -p 6379 (6380,6381都行) 其实就是加了-c
  2. 查看集群信息 cluster nodes

    圈出来的就是有主从关系

一个 Redis 集群包含 16384 个插槽(hash slot), 数据库中的每个键都属于这 16384 个插槽的其中一个,下图圈出来的就是三个主机分了这16384个卡槽,每个主机都有属于自己的范围

java redis集群 密码 redis集群连接带密码_插槽_02

当我在6379set的值的为7785超过6379范围,自动寻找适合的范围并且跳转到那个端口,我当时忘记设计密码了,所以报这个正常是没有的

java redis集群 密码 redis集群连接带密码_java redis集群 密码_03

要知道这时候无法一次性mset多个值因为插槽可能范围不同,如果硬要插,可以设置一个组,相当于把所以key都变成一个key名字为ooo,报错也是密码问题,你们设置一下就行

java redis集群 密码 redis集群连接带密码_插槽_04

当其中一个主机宕机的时候,他的从机会变成新的主机,而当宕机的主机恢复后也只能是从机不会恢复为主机

如果某一段插槽的主从都挂掉,而cluster-require-full-coverage 为yes ,那么 ,整个集群都挂掉
如果某一段插槽的主从都挂掉,而cluster-require-full-coverage 为no ,那么,该插槽数据全都不能使用,也无法存储。
redis.conf中的参数 cluster-require-full-coverage