redis集群

来源:互联网 发布:mac上好用的vpn 知乎 编辑:程序博客网 时间:2024/05/16 01:23

准备工作:

首先必须安装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/clustercd /usr.local/clustermkdir 7000mkdir 7001mkdir 7002mkdir 7003mkdir 7004mkdir 7005

cp /home/sq/redis.conf /usr.local/cluster修改配置文件redis.conf

vi redis.conf##修改配置文件中的下面选项port 7000daemonize yescluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000appendonly yes##修改完redis.conf配置文件中的这些配置项之后把这个配置文件分别拷贝到7000/7001/7002/7003/7004/7005目录下面cp /usr/local/cluster/redis.conf /usr/local/cluster/7000cp /usr/local/cluster/redis.conf /usr/local/cluster/7001cp /usr/local/cluster/redis.conf /usr/local/cluster/7002cp /usr/local/cluster/redis.conf /usr/local/cluster/7003cp /usr/local/cluster/redis.conf /usr/local/cluster/7004cp /usr/local/cluster/redis.conf /usr/local/cluster/7005 ##注意:拷贝完成之后要修改7001/7002/7003/7004/7005目录下面redis.conf文件中的port参数,分别改为对应的文件夹的名称


cd /usr/local/cluster/7000分别启动这6redis实例

redis-server redis.confcd /usr/local/cluster/7001redis-server redis.confcd /usr/local/cluster/7002redis-server redis.confcd /usr/local/cluster/7003redis-server redis.confcd /usr/local/cluster/7004redis-server redis.confcd /usr/local/cluster/7005redis-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 clusterConnecting to node 127.0.0.1:7000: OKConnecting to node 127.0.0.1:7001: OKConnecting to node 127.0.0.1:7002: OKConnecting to node 127.0.0.1:7003: OKConnecting to node 127.0.0.1:7004: OKConnecting to node 127.0.0.1:7005: OK>>> Performing hash slots allocation on 6 nodes...Using 3 masters:127.0.0.1:7000127.0.0.1:7001127.0.0.1:7002Adding replica 127.0.0.1:7003 to 127.0.0.1:7000Adding replica 127.0.0.1:7004 to 127.0.0.1:7001Adding replica 127.0.0.1:7005 to 127.0.0.1:7002M: d8bf7d3d9f38c7616e6347a5a2d054d8fa978397 127.0.0.1:7000   slots:0-5460 (5461 slots) masterM: 6fc3ec10d8c2f472509c470faff2b111f37f7eea 127.0.0.1:7001   slots:5461-10922 (5462 slots) masterM: 889968778bf2780e9fe9f1ea89057f3bad0f5675 127.0.0.1:7002   slots:10923-16383 (5461 slots) masterS: 0584aa26b3fd35bbe8b03a25b2f51e99c89ae82e 127.0.0.1:7003   replicates d8bf7d3d9f38c7616e6347a5a2d054d8fa978397S: a62f3805aa998b9721e66d36c62d2c0b50b74288 127.0.0.1:7004   replicates 6fc3ec10d8c2f472509c470faff2b111f37f7eeaS: e430fb63fce30514d4c4534f0e3e32b3287925bb 127.0.0.1:7005   replicates 889968778bf2780e9fe9f1ea89057f3bad0f5675Can 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 clusterWaiting 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) masterM: 6fc3ec10d8c2f472509c470faff2b111f37f7eea 127.0.0.1:7001   slots:5461-10922 (5462 slots) masterM: 889968778bf2780e9fe9f1ea89057f3bad0f5675 127.0.0.1:7002   slots:10923-16383 (5461 slots) masterM: 0584aa26b3fd35bbe8b03a25b2f51e99c89ae82e 127.0.0.1:7003   slots: (0 slots) master   replicates d8bf7d3d9f38c7616e6347a5a2d054d8fa978397M: a62f3805aa998b9721e66d36c62d2c0b50b74288 127.0.0.1:7004   slots: (0 slots) master   replicates 6fc3ec10d8c2f472509c470faff2b111f37f7eeaM: 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 7000127.0.0.1:7000> sadd sq 123-> Redirected to slot [13244] located at 127.0.0.1:7002(integer) 1127.0.0.1:7002> keys sq1) "sq"127.0.0.1:7002> keys *1) "sq"127.0.0.1:7002> smembers sq1) "123"


1 0