Redis教程

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

本文主要是介绍搭建redis集群主从(三主三从)以及遇见的问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

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

这篇关于搭建redis集群主从(三主三从)以及遇见的问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!