本文目标
要在单台机器上搭建Redis集群,方式是通过不同的TCP端口启动多个实例,然后组成集群,同时记录在搭建过程中踩过的坑。
安装准备
centos版本:6.7
redis版本:3.2.3
安装方式:源码安装
服务器:1台
操作步骤
此处默认已安装好单台redis,如果不会可以参照《centos上安装redis》
1、启动Redis多个实例
我们在Redis安装目录下创建目录cluster,并编写7000.conf~7005.conf 6个配置文件,这6个配置文件用来启动6个实例,后面将使用这6个实例组成集群。
以7000.conf为例,配置文件需要填写如下几项:
port 7000 //端口7000,7001,7002,7003,7004,7005
bind 192.168.186.91 //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes //redis后台运行
pidfile ./redis_7000.pid //pidfile文件对应7000,7001,7002,7003,7004,7005
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002,7003,7004,7005
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
1 2 3 4 5 6 7 8 |
port 7000 //端口7000,7001,7002,7003,7004,7005 bind 192.168.186.91 //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群 daemonize yes //redis后台运行 pidfile ./redis_7000.pid //pidfile文件对应7000,7001,7002,7003,7004,7005 cluster-enabled yes //开启集群 把注释#去掉 cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002,7003,7004,7005 cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置 appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志 |
分别启动6个实例
redis-server redis_cluster/7000/redis.conf redis-server redis_cluster/7001/redis.conf redis-server redis_cluster/7002/redis.conf redis-server redis_cluster/7003/redis.conf redis-server redis_cluster/7004/redis.conf redis-server redis_cluster/7005/redis.conf
1 2 3 4 5 6 |
redis-server redis_cluster/7000/redis.conf redis-server redis_cluster/7001/redis.conf redis-server redis_cluster/7002/redis.conf redis-server redis_cluster/7003/redis.conf redis-server redis_cluster/7004/redis.conf redis-server redis_cluster/7005/redis.conf |
启动成功后,看一下进程
# ps -ef | grep redis | grep cluster idata 15711 22329 0 18:40 pts/10 00:00:00 ./bin/redis-server 192.168.186.91:7000 [cluster] idata 15740 22329 0 18:40 pts/10 00:00:00 ./bin/redis-server 192.168.186.91:7001 [cluster] idata 15810 22329 0 18:40 pts/10 00:00:00 ./bin/redis-server 192.168.186.91:7002 [cluster] idata 17023 22329 0 18:42 pts/10 00:00:00 ./bin/redis-server 192.168.186.91:7003 [cluster] idata 17030 22329 0 18:42 pts/10 00:00:00 ./bin/redis-server 192.168.186.91:7004 [cluster] idata 17035 22329 0 18:42 pts/10 00:00:00 ./bin/redis-server 192.168.186.91:7005 [cluster]
1 2 3 4 5 6 7 |
# ps -ef | grep redis | grep cluster idata 15711 22329 0 18:40 pts/10 00:00:00 ./bin/redis-server 192.168.186.91:7000 [cluster] idata 15740 22329 0 18:40 pts/10 00:00:00 ./bin/redis-server 192.168.186.91:7001 [cluster] idata 15810 22329 0 18:40 pts/10 00:00:00 ./bin/redis-server 192.168.186.91:7002 [cluster] idata 17023 22329 0 18:42 pts/10 00:00:00 ./bin/redis-server 192.168.186.91:7003 [cluster] idata 17030 22329 0 18:42 pts/10 00:00:00 ./bin/redis-server 192.168.186.91:7004 [cluster] idata 17035 22329 0 18:42 pts/10 00:00:00 ./bin/redis-server 192.168.186.91:7005 [cluster] |
至此,ip=192.168.186.91机器上创建了6个实例,端口号为port=7000~7005。
2、安装ruby
1)yum安装ruby和依赖的包。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
[root@itfirst redis_cluster]# yum -y install ruby ruby-devel rubygems rpm-build 已加载插件:fastestmirror 设置安装进程 Loading mirror speeds from cached hostfile * base: mirrors.cn99.com * extras: mirrors.cn99.com * updates: mirrors.cn99.com base | 3.7 kB 00:00 extras | 3.4 kB 00:00 mysql-connectors-community | 2.5 kB 00:00 mysql-tools-community | 2.5 kB 00:00 mysql56-community | 2.5 kB 00:00 updates | 3.4 kB 00:00 解决依赖关系 --> 执行事务检查 ---> Package rpm-build.x86_64 0:4.8.0-55.el6 will be 安装 --> 处理依赖关系 patch >= 2.5,它被软件包 rpm-build-4.8.0-55.el6.x86_64 需要 --> 处理依赖关系 elfutils >= 0.128,它被软件包 rpm-build-4.8.0-55.el6.x86_64 需要 --> 处理依赖关系 xz,它被软件包 rpm-build-4.8.0-55.el6.x86_64 需要 --> 处理依赖关系 system-rpm-config,它被软件包 rpm-build-4.8.0-55.el6.x86_64 需要 --> 处理依赖关系 lzma,它被软件包 rpm-build-4.8.0-55.el6.x86_64 需要 --> 处理依赖关系 /usr/bin/gdb-add-index,它被软件包 rpm-build-4.8.0-55.el6.x86_64 需要 ---> Package ruby.x86_64 0:1.8.7.374-5.el6 will be 安装 --> 处理依赖关系 ruby-libs = 1.8.7.374-5.el6,它被软件包 ruby-1.8.7.374-5.el6.x86_64 需要 --> 处理依赖关系 libruby.so.1.8()(64bit),它被软件包 ruby-1.8.7.374-5.el6.x86_64 需要 ---> Package ruby-devel.x86_64 0:1.8.7.374-5.el6 will be 安装 ---> Package rubygems.noarch 0:1.3.7-5.el6 will be 安装 --> 处理依赖关系 ruby-rdoc,它被软件包 rubygems-1.3.7-5.el6.noarch 需要 --> 执行事务检查 ---> Package elfutils.x86_64 0:0.164-2.el6 will be 安装 --> 处理依赖关系 elfutils-libs(x86-64) = 0.164-2.el6,它被软件包 elfutils-0.164-2.el6.x86_64 需要 --> 处理依赖关系 libdw.so.1(ELFUTILS_0.158)(64bit),它被软件包 elfutils-0.164-2.el6.x86_64 需要 --> 处理依赖关系 libdw.so.1(ELFUTILS_0.149)(64bit),它被软件包 elfutils-0.164-2.el6.x86_64 需要 --> 处理依赖关系 libdw.so.1(ELFUTILS_0.148)(64bit),它被软件包 elfutils-0.164-2.el6.x86_64 需要 --> 处理依赖关系 libdw.so.1(ELFUTILS_0.138)(64bit),它被软件包 elfutils-0.164-2.el6.x86_64 需要 --> 处理依赖关系 libdw.so.1(ELFUTILS_0.130)(64bit),它被软件包 elfutils-0.164-2.el6.x86_64 需要 --> 处理依赖关系 libdw.so.1(ELFUTILS_0.127)(64bit),它被软件包 elfutils-0.164-2.el6.x86_64 需要 --> 处理依赖关系 libdw.so.1(ELFUTILS_0.126)(64bit),它被软件包 elfutils-0.164-2.el6.x86_64 需要 --> 处理依赖关系 libdw.so.1(ELFUTILS_0.122)(64bit),它被软件包 elfutils-0.164-2.el6.x86_64 需要 --> 处理依赖关系 libasm.so.1(ELFUTILS_1.0)(64bit),它被软件包 elfutils-0.164-2.el6.x86_64 需要 --> 处理依赖关系 libdw.so.1()(64bit),它被软件包 elfutils-0.164-2.el6.x86_64 需要 --> 处理依赖关系 libasm.so.1()(64bit),它被软件包 elfutils-0.164-2.el6.x86_64 需要 ---> Package gdb.x86_64 0:7.2-92.el6 will be 安装 ---> Package patch.x86_64 0:2.6-6.el6 will be 安装 ---> Package redhat-rpm-config.noarch 0:9.0.3-51.el6.centos will be 安装 ---> Package ruby-libs.x86_64 0:1.8.7.374-5.el6 will be 安装 --> 处理依赖关系 libreadline.so.5()(64bit),它被软件包 ruby-libs-1.8.7.374-5.el6.x86_64 需要 ---> Package ruby-rdoc.x86_64 0:1.8.7.374-5.el6 will be 安装 --> 处理依赖关系 ruby-irb = 1.8.7.374-5.el6,它被软件包 ruby-rdoc-1.8.7.374-5.el6.x86_64 需要 ---> Package xz.x86_64 0:4.999.9-0.5.beta.20091007git.el6 will be 安装 ---> Package xz-lzma-compat.x86_64 0:4.999.9-0.5.beta.20091007git.el6 will be 安装 --> 执行事务检查 ---> Package compat-readline5.x86_64 0:5.2-17.1.el6 will be 安装 ---> Package elfutils-libs.x86_64 0:0.164-2.el6 will be 安装 ---> Package ruby-irb.x86_64 0:1.8.7.374-5.el6 will be 安装 --> 完成依赖关系计算
依赖关系解决
============================================================================================================================================================================================================================================================================== 软件包 架构 版本 仓库 大小 ====================== |