首页 > 代码库 > redis集群
redis集群
准备工作:
首先必须安装redis,安装完后,安装例如以下内容:
</pre><pre name="code" class="html"> sudo yum install ruby sudo yum install rubygem yum install -y ruby-devel ruby-docs ruby-ri ruby-rdoc yum install -y rubygems gem install redis
创建集群须要的文件夹
mkdir -p /usr.local/cluster cd /usr.local/cluster mkdir 7000 mkdir 7001 mkdir 7002 mkdir 7003 mkdir 7004 mkdir 7005
cp /home/sq/redis.conf /usr.local/cluster改动配置文件redis.conf
vi redis.conf ##改动配置文件里的以下选项 port 7000 daemonize yes cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes ##改动完redis.conf配置文件里的这些配置项之后把这个配置文件分别复制到7000/7001/7002/7003/7004/7005文件夹以下 cp /usr/local/cluster/redis.conf /usr/local/cluster/7000 cp /usr/local/cluster/redis.conf /usr/local/cluster/7001 cp /usr/local/cluster/redis.conf /usr/local/cluster/7002 cp /usr/local/cluster/redis.conf /usr/local/cluster/7003 cp /usr/local/cluster/redis.conf /usr/local/cluster/7004 cp /usr/local/cluster/redis.conf /usr/local/cluster/7005 ##注意:拷贝完毕之后要改动7001/7002/7003/7004/7005文件夹以下redis.conf文件里的port參数,分别改为相应的文件夹的名称
cd /usr/local/cluster/7000分别启动这6个redis实例
redis-server redis.conf cd /usr/local/cluster/7001 redis-server redis.conf cd /usr/local/cluster/7002 redis-server redis.conf cd /usr/local/cluster/7003 redis-server redis.conf cd /usr/local/cluster/7004 redis-server redis.conf cd /usr/local/cluster/7005 redis-server redis.conf
创建集群
./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
报错,例如以下所看到的
Connecting to node 127.0.0.1:7001: [ERR] Sorry, can‘t connect to node 127.0.0.1:7001
下载最新的配置文件。反复上面集群命令。成功。
>>> Creating cluster Connecting to node 127.0.0.1:7000: OK Connecting to node 127.0.0.1:7001: OK Connecting to node 127.0.0.1:7002: OK Connecting to node 127.0.0.1:7003: OK Connecting to node 127.0.0.1:7004: OK Connecting to node 127.0.0.1:7005: OK >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 Adding replica 127.0.0.1:7003 to 127.0.0.1:7000 Adding replica 127.0.0.1:7004 to 127.0.0.1:7001 Adding replica 127.0.0.1:7005 to 127.0.0.1:7002 M: d8bf7d3d9f38c7616e6347a5a2d054d8fa978397 127.0.0.1:7000 slots:0-5460 (5461 slots) master M: 6fc3ec10d8c2f472509c470faff2b111f37f7eea 127.0.0.1:7001 slots:5461-10922 (5462 slots) master M: 889968778bf2780e9fe9f1ea89057f3bad0f5675 127.0.0.1:7002 slots:10923-16383 (5461 slots) master S: 0584aa26b3fd35bbe8b03a25b2f51e99c89ae82e 127.0.0.1:7003 replicates d8bf7d3d9f38c7616e6347a5a2d054d8fa978397 S: a62f3805aa998b9721e66d36c62d2c0b50b74288 127.0.0.1:7004 replicates 6fc3ec10d8c2f472509c470faff2b111f37f7eea S: e430fb63fce30514d4c4534f0e3e32b3287925bb 127.0.0.1:7005 replicates 889968778bf2780e9fe9f1ea89057f3bad0f5675 Can I set the above configuration?(type 'yes' to accept): yes >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join....... >>> Performing Cluster Check (using node 127.0.0.1:7000) M: d8bf7d3d9f38c7616e6347a5a2d054d8fa978397 127.0.0.1:7000 slots:0-5460 (5461 slots) master M: 6fc3ec10d8c2f472509c470faff2b111f37f7eea 127.0.0.1:7001 slots:5461-10922 (5462 slots) master M: 889968778bf2780e9fe9f1ea89057f3bad0f5675 127.0.0.1:7002 slots:10923-16383 (5461 slots) master M: 0584aa26b3fd35bbe8b03a25b2f51e99c89ae82e 127.0.0.1:7003 slots: (0 slots) master replicates d8bf7d3d9f38c7616e6347a5a2d054d8fa978397 M: a62f3805aa998b9721e66d36c62d2c0b50b74288 127.0.0.1:7004 slots: (0 slots) master replicates 6fc3ec10d8c2f472509c470faff2b111f37f7eea M: e430fb63fce30514d4c4534f0e3e32b3287925bb 127.0.0.1:7005 slots: (0 slots) master replicates 889968778bf2780e9fe9f1ea89057f3bad0f5675 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
測试:
redis-cli -c -p 7000 [root@localhost 7005]# redis-cli -c -p 7000 127.0.0.1:7000> sadd sq 123 -> Redirected to slot [13244] located at 127.0.0.1:7002 (integer) 1 127.0.0.1:7002> keys sq 1) "sq" 127.0.0.1:7002> keys * 1) "sq" 127.0.0.1:7002> smembers sq 1) "123"
redis集群