redis3.0.5集群部署安装详细步骤

来源:互联网 发布:sql 2005 sp4 x64 编辑:程序博客网 时间:2024/06/05 11:27

Redis集群部署文档(centos6系统)

(要让集群正常工作至少需要3个主节点,在这里我们要创建6redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)

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

http://download.csdn.net/detail/qq_22929803/9375119 redis安装包下载地址

http://download.csdn.net/detail/qq_22929803/9375122 jedis架包下载地址

首先到http://download.redis.io/releases/下载redis-3.0.5.tar.gz或者其他版本的

将下载来的文件上传到服务器然后

tar -xvf redis-3.0.5.tar.gzcd redis-3.0.5#如果不加参数,linux下会报错make MALLOC=libc

编译好以后启动

#启动redissrc/redis-server &#关闭redissrc/redis-cli shutdown

测试redis

$ src/redis-cli127.0.0.1:6379> set a testOK127.0.0.1:6379> get a"test"$ 

这样就代表成功安装了

接下来安装redis cluster集群搭建

#建立redis运行目录mkdir -p /usr/local/redis/cluster/7000/#复制默认的配置文档cp redis-3.0.5/redis.conf /usr/local/redis/cluster/7000/redis.conf#把编译好的server复制到运行目录cp redis-3.0.5/src/redis-server /usr/local/redis/cluster/7000/

修改/usr/local/redis/cluster/7000/redis.conf文件

vi /usr/local/redis/cluster/7000/redis.conf

vi redis.conf##修改配置文件中的下面选项port 7000daemonize yescluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000appendonly yes
再把redis/src下面的redis-server启动脚本移到/usr/local/redis/cluster/7000下面

cp /home/redis/src/redis-3.0.5/src/redis-server /usr/local/redis/cluster/7000/

##修改完redis.conf配置文件中的这些配置项之后把这个配置文件分别拷贝到7001/7002/7003/7004/7005目录下面cp /usr/local/redis/cluster/7000/ /usr/local/redis/cluster/7001/cp /usr/local/redis/cluster/7000/ /usr/local/redis/cluster/7002/cp /usr/local/redis/cluster/7000/ /usr/local/redis/cluster/7003/cp /usr/local/redis/cluster/7000/ /usr/local/redis/cluster/7004/cp /usr/local/redis/cluster/7000/ /usr/local/redis/cluster/7005/ ##注意:拷贝完成之后要修改7002/7003/7004/7005目录下面redis.conf文件中的port参数,分别改为对应的文件夹的名称

分别启动这6个redis实例cd /usr/local/redis/cluster/7000redis-server redis.confcd /usr/local/redis/cluster/7001redis-server redis.confcd /usr/local/redis/cluster/7002redis-server redis.confcd /usr/local/redis/cluster/7003redis-server redis.confcd /usr/local/redis/cluster/7004redis-server redis.confcd /usr/local/redis/cluster/7005redis-server redis.conf
启动之后用ps -aux |grep redis 查看下

[root@hadoop1 7000]# ps -aux |grep redis Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQroot      3123  0.1  0.0 129340  2616 ?        Ssl  11:11   0:02 ./redis-server *:7000 [cluster]root      3135  0.1  0.0 129372  2644 ?        Ssl  11:11   0:01 ./redis-server *:7001 [cluster]root      3141  0.1  0.0 129372  2680 ?        Ssl  11:12   0:01 ./redis-server *:7002 [cluster]root      3145  0.1  0.0 128360  2588 ?        Ssl  11:12   0:01 ./redis-server *:7003 [cluster]root      3149  0.1  0.0 128356  2600 ?        Ssl  11:12   0:01 ./redis-server *:7004 [cluster]root      3153  0.1  0.0 128352  2596 ?        Ssl  11:12   0:01 ./redis-server *:7005 [cluster]root      3244  0.0  0.0 103256   848 pts/0    S+   11:34   0:00 grep redis
如果是这样的则代表成功

执行redis的创建集群命令创建集群cd /home/redis/src/redis-3.0.5/src./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执行上面的命令的时候会报错,因为是执行的ruby的脚本,需要ruby的环境错误内容:/usr/bin/env: ruby: No such file or directory所以需要安装ruby的环境,这里推荐使用yum install ruby安装yum install ruby 然后再执行第6步的创建集群命令,还会报错,提示缺少rubygems组件,使用yum安装 错误内容:./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)from ./redis-trib.rb:24yum install rubygems再次执行第6步的命令,还会报错,提示不能加载redis,是因为缺少redis和ruby的接口,使用gem 安装错误内容:/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'from ./redis-trib.rb:25 gem install redis

如果再执行还报

Connecting to node 127.0.0.1:7000: [ERR] Sorry, can't connect to node 127.0.0.1:7000

这个错误的话那就查看下你6个端口是否都启动了,没启动的话会报上面的错误


命令输入后

[root@hadoop1 src]# ./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>>> 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: ed3a2dc06dd2b07a7df2f5036c8a5c73407125e1 127.0.0.1:7000   slots:0-5460 (5461 slots) masterM: b99d5eeb2122f86f8da149cab291d821316d2a61 127.0.0.1:7001   slots:5461-10922 (5462 slots) masterM: cecf3694476229d11dfc9ae9117f381c84b43ab6 127.0.0.1:7002   slots:10923-16383 (5461 slots) masterS: c99e2ff123d19444363a9ee4444f5b139dd1fe41 127.0.0.1:7003   replicates ed3a2dc06dd2b07a7df2f5036c8a5c73407125e1S: e4b3b0fe2ffdfdb705f49bfb62265840aca4055b 127.0.0.1:7004   replicates b99d5eeb2122f86f8da149cab291d821316d2a61S: 440e8743f546aa9a0d0f44d660eca577de6f1218 127.0.0.1:7005   replicates cecf3694476229d11dfc9ae9117f381c84b43ab6Can 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: ed3a2dc06dd2b07a7df2f5036c8a5c73407125e1 127.0.0.1:7000   slots:0-5460 (5461 slots) masterM: b99d5eeb2122f86f8da149cab291d821316d2a61 127.0.0.1:7001   slots:5461-10922 (5462 slots) masterM: cecf3694476229d11dfc9ae9117f381c84b43ab6 127.0.0.1:7002   slots:10923-16383 (5461 slots) masterM: c99e2ff123d19444363a9ee4444f5b139dd1fe41 127.0.0.1:7003   slots: (0 slots) master   replicates ed3a2dc06dd2b07a7df2f5036c8a5c73407125e1M: e4b3b0fe2ffdfdb705f49bfb62265840aca4055b 127.0.0.1:7004   slots: (0 slots) master   replicates b99d5eeb2122f86f8da149cab291d821316d2a61M: 440e8743f546aa9a0d0f44d660eca577de6f1218 127.0.0.1:7005   slots: (0 slots) master   replicates cecf3694476229d11dfc9ae9117f381c84b43ab6[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.


然后再测试下
[root@hadoop1 src]# ./redis-cli -c -p 7000127.0.0.1:7000> set foo bbb-> Redirected to slot [12182] located at 127.0.0.1:7002OK127.0.0.1:7002> set foo cccOK127.0.0.1:7002> get foo"ccc"127.0.0.1:7002> set foo1 aaaOK127.0.0.1:7002> get foo1"aaa"127.0.0.1:7002> set foo 222OK127.0.0.1:7002> 


再到

cd /usr/local/redis/cluster/7002cat appendonly.aof*2$6SELECT$10*3$3set$3foo$3bbb*3$3set$3foo$3ccc*3$3set$4foo1$3aaa*3$3set$3foo$3222

这样则代表集群安装成功了,接下来将接受通过Jedis来连接集群



0 0
原创粉丝点击