ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

搭建redis集群主从(三主三从)以及遇见的问题

2021-04-29 21:32:37  阅读:244  来源: 互联网

标签:127.0 0.1 三主三 redis cluster usr conf 主从


centos版本:centos7
redis版本:4.0.11
使用一台虚拟机模拟6个redis节点,3个master,3个slave
搭建redis 集群
要让集群正确运行 需要 3个主节点,再刚开始搭建集群的时候 需要6各节点 其中三个为主节点 另外3个为主节点的从节点

  1. 进入目录 创建六个以端口号为 名字的子目录
mkdir 7001  7002 7003  8001 8002 8003
  1. 将redis 中的 redis.conf 拷贝一份到 刚刚创建的 文件夹中
-f覆盖  -if 强制覆盖  重名文件
cp -f /opt/redis4/redis.conf /usr/cluster/7001
cp -f /opt/redis4/redis.conf /usr/cluster/7002 
cp -f /opt/redis4/redis.conf /usr/cluster/7003
cp -f /opt/redis4/redis.conf /usr/cluster/8001
cp -f /opt/redis4/redis.conf /usr/cluster/8002
cp -f /opt/redis4/redis.conf /usr/cluster/8003
  1. 进入文件中对redis.conf进行修改
cd /usr/cluster/7001
vim redis.conf
bing 0.0.0.0 #设置当前服务器的IP 0.0.0.0 任何人都可以访问
port 7001 #端口号
cluster-enabled yes #开启集群
cluster-config-file nodes.conf
cluster-node-timeout 5000 #设置请求超时时间,默认为15秒
appendonly yes #aof日志开启,每次进行写操作都记录日志
pidfile "/usr/cluster/7001/redis.pid"
logfile "/usr/cluster/7001/redis.log"
daemonize yes  #设置后台运行redis
dir "/usr/cluster/7001"
dbfilename dump_7000.rdb
requirepass password(自己设置密码)
  1. 下载需要的环境
yum -y install ruby rubygems

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
#如果下载失败 再次执行

curl -L get.rvm.io | bash -s stable

source /usr/local/rvm/scripts/rvm

rvm install ruby-2.3.3   (此过程耗时过长,耐心等待~)

rvm use 2.3.3 --default

gem install redis
  1. 启动各个节点的 reids 服务
redis-server /usr/cluster/7000/redis.conf
  1. 查看启动的redis 服务
ps -ef|grep redis | grep cluster
  1. 将其加到集群里面
redis-trib.rb create --replicas 1  127.0.0.1:7001 127.0.0.1:7002 27.0.0.1:7003 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:7003
  1. 留意一下屏幕,会有一句(type ‘yes’ or accept),输入yes,回车。(意思是:接受自主分配三主三从)如果最后出现
Check for open slots...
Check slots coverage...
  1. 验证集群
 redis-cli -h 127.0.0.1 -c -p 7001  (加参数 -c 可以连接到集群,因为redis.conf将bind改为了ip地址,所以 -h 不可以省略)

连接到7000端口使用set存测试值

由于前面配置文件 可能配置了密码 会导致 启动报错

[ERR] Sorry, can't connect to node 127.0.0.1:7000

redis5之前

我的是在这个如果找不到client.rb 可以再虚拟机搜索这个文件 一定是 redis 下面的

/usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.2.5/lib/redis/client.rb

使用redis-trib.rb 是没有 -a 这个参数的就必须修改 client.rb

require_relative "errors"
require "socket"
require "cgi"

class Redis
  class Client
    # Defaults are also used for converting string keys to symbols.
    DEFAULTS = {
      url: -> { ENV["REDIS_URL"] },
      scheme: "redis",
      host: "127.0.0.1",
      port: 6379,
      path: nil,
      read_timeout: nil,
      write_timeout: nil,
      connect_timeout: nil,
      timeout: 5.0,
      #修改passowrd 改成你自己设置的 密码
      password: "",
      db: 0,
      driver: nil,
      id: nil,
      tcp_keepalive: 0,
      reconnect_attempts: 1,
      reconnect_delay: 0,
      reconnect_delay_max: 0.5,
      inherit_socket: false,
      logger: nil,
      sentinels: nil,
      role: nil
    }.freeze

redis5之后

有密码,这里加了-a ,如果有密码时创建集群必须携带此参数,

redis-cli -a 输入自己的密码 --cluster create 127.0.0.1:7001 127.0.0.1:7002 27.0.0.1:7003 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:7003

由于是第一次搭建测试集群,如果有问题 请私信我改进,一起进步!!!

标签:127.0,0.1,三主三,redis,cluster,usr,conf,主从
来源: https://blog.csdn.net/qq_45473292/article/details/116275847

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有