Redis集群详细搭建
2019-03-20 08:57
134 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/LJJ1512/article/details/88679834
1,Redis集群安装
1,下载并解压到/usr/local/redis目录下
wget http://download.redis.io/releases/redis-3.2.3.tar.gz tar -zxvf redis-3.2.3.tar.gz mv redis-3.2.3 /usr/local/redis cd /usr/local/redis make make install
2,创建集群目录(以每台机器两个redis为例)
mkdir /usr/local/redis-cluster cd redis-cluster/ mkdir -p 7001/data 7002/data
3,将redis复制到集群每个实例下,并修改每个redis.conf
cp -r /usr/local/redis/* /usr/local/redis-cluster/7001 cp -r /usr/local/redis/* /usr/local/redis-cluster/7002
vim redis.conf
port 7001 //端口7001,7002 ...... bind 192.168.*.* //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端 daemonize yes //redis后台运行 dir /usr/local/redis-cluster/7001/data/ //数据文件存放位置 pidfile /var/run/redis_7001.pid //pid 7001和port要对应 cluster-enabled yes //开启集群 cluster-config-file nodes_7001.conf //集群的配置 配置文件首次启动自动生成7001,7002,7 cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置 appendonly yes //数据转移的时候必须开启,aof日志开启 有需要就开启,它会每次写操作都记录一条日志
4,集群需要ruby
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 curl -SSL https://get.rvm.io | bash -s stable find / -name rvm –print //使rvm生效 source /usr/local/rvm/scripts/rvm //查看rvm已知ruby rvm list known //安装一个ruby版本 rvm install 2.3.4 //使用一个ruby版本 rvm use 2.3.4 //设置默认版本 rvm use 2.3.4 --default //安装到Redis gem install redis
5,创建集群(每个节点不能含有数据)
--replicas 1主从复制比例为 1:1 redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.*.*:7001 ...
6,单机数据迁移到集群
- 连接到单机,执行
BGREWRITEAOF
- 将卡槽全部分配一个节点上
//查看哈希槽分配情况 redis-trib.rb check 192.168.*.*:port //将节点都迁移到一个主节点上 redis-trib.rb reshard 192.168.*.*:port(要迁移的节点) How many slots do you want to move (from 1 to 16384)? 5462(迁移多少槽) What is the receiving node ID? 071ca1edd4552f8992ae181c9cad432c5d5ccab9 (接收迁移卡槽的节点id) Source node #1:64df48ff73279f8a667c295487036c6af2ba1342 (移出去的节点id) Source node #2:done
-
先停掉集群,然后把单实例节点的aof文件和dump文件拷到192.168.的节点对应的目录下。启动集群,查看数据
-
重新分配哈希槽数据
//把节点192.168.56.91上的5461个slots移动节点192.168.56.93上 ./redis-trib.rb reshard --from c5f8550043708e27e659a0a5ecdf44264d1b3e41(从哪的id) --to 00fb26359103a3dd7b55b4cfbe3e1984cc2f2387(到哪的id) --slots 5461 --yes 192.168.56.91:7001(有哈希槽的节点 从哪的节点)
这里会出现的问题:
- [ERR] Calling MIGRATE: ERR Syntax error, try CLIENT (LIST | KILL | GETNAME | SETNAME | PAUSE | REPLY)
原因:ruby 版本问题 换3.X版本
解决方法:
gem uninstall redis gem install redis -v 3.3.5
- [WARNING] Node 192.168.30.6:7001 has slots in migrating state (0).
原因:上面分配错误导致
解决方法: 连接到对应节点,执行cluster setslot 0 stable
0就是上面的错误提示0
7,建立主从节点
redis-trib.rb add-node --slave --master-id c5f8550043708e27e659a0a5ecdf44264d1b3e41(主id)192.168.56.91:7379(从) 192.168.56.91:7379(主)
相关文章推荐
- Redis 集群搭建详细指南
- redis 集群搭建详细过程
- Redis 集群搭建详细指南
- redis集群搭建详细步骤
- redis集群搭建(非常详细,适合新手)
- 详细Redis集群的配置搭建
- redis集群的搭建详细教程
- Redis集群搭建----(超详细过程)
- Redis集群搭建详细过程整理备忘
- Windows 下 Redis集群的搭建 ——(超详细版)
- 手把手教你如何搭建redis集群(非常详细)
- Redis 集群搭建详细指南
- redis的集群搭建(很详细很详细)
- redis集群搭建详细指导(图文介绍)
- Redis 集群搭建详细指南
- Redis3.0集群环境的搭建详细步骤
- redis集群(三台机器,三主三从模式)搭建笔记,亲测,详细步骤
- Redis集群搭建详细指南
- Window平台搭建Redis分布式缓存集群 (一)server搭建及性能測试
- redis 搭建集群