搭建redis集群主从(三主三从)以及遇见的问题
2021/4/30 2:25:40
本文主要是介绍搭建redis集群主从(三主三从)以及遇见的问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
centos版本:centos7
redis版本:4.0.11
使用一台虚拟机模拟6个redis节点,3个master,3个slave
搭建redis 集群
要让集群正确运行 需要 3个主节点,再刚开始搭建集群的时候 需要6各节点 其中三个为主节点 另外3个为主节点的从节点
- 进入目录 创建六个以端口号为 名字的子目录
mkdir 7001 7002 7003 8001 8002 8003
- 将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
- 进入文件中对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(自己设置密码)
- 下载需要的环境
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
- 启动各个节点的 reids 服务
redis-server /usr/cluster/7000/redis.conf
- 查看启动的redis 服务
ps -ef|grep redis | grep cluster
- 将其加到集群里面
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
- 留意一下屏幕,会有一句(type ‘yes’ or accept),输入yes,回车。(意思是:接受自主分配三主三从)如果最后出现
Check for open slots... Check slots coverage...
- 验证集群
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集群主从(三主三从)以及遇见的问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-31Tiny RDM:你的下一代Redis桌面GUI神器-icode9专业技术文章分享
- 2024-03-21redisinsight-v2
- 2024-02-26Typed property App\Api\Mapper\GamePropsConfigMapper::$apiRedis must not be accessed before initia-icode9专业技术文章分享
- 2024-02-21redisson getlock
- 2024-02-20redis config
- 2024-02-20redis leaderboard
- 2024-01-23缓存选型:Redis or MemCache
- 2024-01-22面试官:Redis持久化能关吗?怎么关?
- 2024-01-21Redis压测工具redis-benchmark-icode9专业技术文章分享
- 2024-01-19这才是你应该了解的Redis数据结构!