redis集群搭建-centos7
2017-05-23 00:00
441 查看
准备工作
所有的操作尽量用Xshell的批量操作来执行, 能省去很多步骤环境准备
在虚拟机中安装四台centos7(我用的镜像是CentOS-7-x86_64-Minimal-1611.iso)最小化安装ip地址分别是
192.168.16.135
192.168.16.136
192.168.16.137
192.168.16.138
最终redis集群将会是4主(7000端口)4从(7001端口)8个节点
使用网易安装源(可忽略本步骤)
yum install wget # 替换本地安装源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo # 生成缓存 yum makecache # 更新系统 yum update
安装必须的类库
yum install -y gcc g++ gcc-c++ make net-tools
安装ruby
yum install ruby
下载redis集群版&&解压缩
# 创建工作目录并进入 mkdir -p /z/packages && cd /z/packages # 下载redis集群版(3.0版本以上支持集群) wget http://download.redis.io/releases/redis-3.2.1.tar.gz # 解压并进入redis-3.2.1 tar zxvf redis-3.2.1.tar.gz && cd redis-3.2.1
编译&&安装
# 编译 make # 安装 make install
如果编译过程出错, 提示
zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录
解决方法: ==make MALLOC=libc==
准备工作目录以及开放端口
创建集群工作目录
mkdir -p /z/redis-cluster/7000 mkdir -p /z/redis-cluster/7001
复制redis的配置文件到集群工作目录下
cp /z/packages/redis-3.2.1/redis.conf /z/redis-cluster/7000
修改redis.conf配置
# 修改地址绑定 , 允许远程连接 bind 127.0.0.1 加上注释 # 改为集群模式 cluster-enabled yes 去掉注释 # 修改端口号 port 6379改为7000 # 改为后台运行 daemonize no 改为yes # 保护模式 protected-mode yes 改为no # pidfile文件 pidfile /var/run/redis_6379.pid 改为 pidfile /var/run/redis_7000.pid
开放指定端口
# 开放reids客户端连接端口 [root@localhost src]# firewall-cmd --zone=public --add-port=7000/tcp --permanent [root@localhost src]# firewall-cmd --zone=public --add-port=7001/tcp --permanent # 开放redis集群总线端口 [root@localhost src]# firewall-cmd --zone=public --add-port=17000/tcp --permanent [root@localhost src]# firewall-cmd --zone=public --add-port=17001/tcp --permanent # 重新加载 [root@localhost src]# firewall-cmd --reload # 查看全部开放端口 [root@localhost src]# firewall-cmd --list-all # 删除某个端口 [root@localhost src]# firewall-cmd --zone=public --remove-port=80/tcp --permanent # 最终每台机器端口开放结果: [root@localhost src]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens160 sources: services: dhcpv6-client ssh ports: 7001/tcp 17000/tcp 7000/tcp 17001/tcp protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules:
配置节点
启动所有节点
# 启动135/136/137/138上的7000和7001节点 redis-server /z/redis-cluster/7000/redis.conf redis-server /z/redis-cluster/7001/redis.conf # 关闭节点 # redis-cli -p 7000 shutdown # 如果报错 /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError) from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from ./redis-trib.rb:25:in `<main>' # 需要为ruby安装redis库 gem install redis
配置主从关系
# 创建主节点(redis-trib.rb文件位于/z/packages/redis-3.2.1/src/下)
[root@localhost src]# ./redis-trib.rb create 192.168.16.135:7000 192.168.16.136:7000 192.168.16.137:7000 192.168.16.138:7000
# 查看所有节点
[root@localhost src]# redis-cli -c -p 7000 cluster nodes
# 设置从节点
[root@localhost src]# ./redis-trib.rb add-node --slave --master-id c31ba3dad768b34f21b543608e5864ad40ea720c 192.168.16.138:7001 192.168.16.135:7000
.........
# 最终的主从关系
[root@localhost src]# redis-cli -c -p 7000 cluster nodes
2b6837803045db79634ed26f57a696f507836fe7 192.168.16.135:7001 slave bfd612e3f53efcd8d79c2cb9a012807d66a15473 0 1492141670958 2 connected
11d01d53e04ff629ebab359d939e472ac7804da2 192.168.16.137:7000 master - 0 1492141666946 3 connected 8192-12287
23a03ea8f1f09254fa960545ff33a5bd559f21bc 192.168.16.138:7001 slave c31ba3dad768b34f21b543608e5864ad40ea720c 0 1492141667853 1 connected
0cbd794de620887d68518c2a169ed8d20a00eda8 192.168.16.137:7001 slave 0301c952a8bbdd7ab7ef66e60daad506b813fc13 0 1492141665944 4 connected
43a0f168a5a31156210513671369baf166eb280b 192.168.16.136:7001 slave 11d01d53e04ff629ebab359d939e472ac7804da2 0 1492141667953 3 connected
0301c952a8bbdd7ab7ef66e60daad506b813fc13 192.168.16.138:7000 master - 0 1492141669955 4 connected 12288-16383
bfd612e3f53efcd8d79c2cb9a012807d66a15473 192.168.16.136:7000 master - 0 1492141668953 2 connected 4096-8191
c31ba3dad768b34f21b543608e5864ad40ea720c 192.168.16.135:7000 myself,master - 0 0 1 connected 0-4095
命令 | 描述 |
---|---|
–slave | 表示添加的是从节点 |
–master-id | c31ba3dad768b34f21b543608e5864ad40ea720c , 主节点id |
192.168.16.138:7001 | 新节点 |
192.168.16.135:7000 | 集群中任意一个旧节点 |
测试
未完成....相关文章推荐
- 在Centos上搭建Codis的Redis 集群解决方案
- [置顶] centos完美搭建redis3.0集群并附测试
- CentOS7下搭建redis集群
- ubuntu/centos 搭建 搭建 redis 集群
- ubuntu/centos 搭建 搭建 redis 集群
- centos6.7 搭建 redis集群
- CentOS 6.5搭建Redis集群
- 详解centos下搭建redis集群
- centos下搭建redis集群
- ubuntu/centos 搭建 搭建 redis 集群
- Centos6.5搭建Redis集群
- redis 在CentOS6.5_64下集群搭建
- CENTOS6.6下redis3.2集群搭建
- centos完美搭建redis3.0集群并附测试
- centos6.5环境下redis3.0集群搭建和配置
- Centos6.4搭建Redis集群遇到的几个问题汇总
- CentOS搭建Redis集群
- CentOS完美搭建Redis3.0集群并附测试
- ubuntu/centos 搭建 搭建 redis 集群
- 详解CentOS 6.5搭建Redis3.2.8单机分布式集群