您的位置:首页 > 数据库 > Redis

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

2015-12-24 11:40 726 查看
Redis集群部署文档(centos6系统)

(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的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.gz
cd redis-3.0.5
#如果不加参数,linux下会报错
make MALLOC=libc


编译好以后启动

#启动redis
src/redis-server &

#关闭redis
src/redis-cli shutdown


测试redis

$ src/redis-cli
127.0.0.1:6379> set a test
OK
127.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 7000
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly 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/7000
redis-server redis.conf
cd /usr/local/redis/cluster/7001
redis-server redis.conf
cd /usr/local/redis/cluster/7002
redis-server redis.conf
cd /usr/local/redis/cluster/7003
redis-server redis.conf
cd /usr/local/redis/cluster/7004
redis-server redis.conf
cd /usr/local/redis/cluster/7005
redis-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/FAQ
root      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:24
yum 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 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: ed3a2dc06dd2b07a7df2f5036c8a5c73407125e1 127.0.0.1:7000
slots:0-5460 (5461 slots) master
M: b99d5eeb2122f86f8da149cab291d821316d2a61 127.0.0.1:7001
slots:5461-10922 (5462 slots) master
M: cecf3694476229d11dfc9ae9117f381c84b43ab6 127.0.0.1:7002
slots:10923-16383 (5461 slots) master
S: c99e2ff123d19444363a9ee4444f5b139dd1fe41 127.0.0.1:7003
replicates ed3a2dc06dd2b07a7df2f5036c8a5c73407125e1
S: e4b3b0fe2ffdfdb705f49bfb62265840aca4055b 127.0.0.1:7004
replicates b99d5eeb2122f86f8da149cab291d821316d2a61
S: 440e8743f546aa9a0d0f44d660eca577de6f1218 127.0.0.1:7005
replicates cecf3694476229d11dfc9ae9117f381c84b43ab6
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: ed3a2dc06dd2b07a7df2f5036c8a5c73407125e1 127.0.0.1:7000
slots:0-5460 (5461 slots) master
M: b99d5eeb2122f86f8da149cab291d821316d2a61 127.0.0.1:7001
slots:5461-10922 (5462 slots) master
M: cecf3694476229d11dfc9ae9117f381c84b43ab6 127.0.0.1:7002
slots:10923-16383 (5461 slots) master
M: c99e2ff123d19444363a9ee4444f5b139dd1fe41 127.0.0.1:7003
slots: (0 slots) master
replicates ed3a2dc06dd2b07a7df2f5036c8a5c73407125e1
M: e4b3b0fe2ffdfdb705f49bfb62265840aca4055b 127.0.0.1:7004
slots: (0 slots) master
replicates b99d5eeb2122f86f8da149cab291d821316d2a61
M: 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 7000
127.0.0.1:7000> set foo bbb
-> Redirected to slot [12182] located at 127.0.0.1:7002
OK
127.0.0.1:7002> set foo ccc
OK
127.0.0.1:7002> get foo
"ccc"
127.0.0.1:7002> set foo1 aaa
OK
127.0.0.1:7002> get foo1
"aaa"
127.0.0.1:7002> set foo 222
OK
127.0.0.1:7002>


再到

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


这样则代表集群安装成功了,接下来将接受通过Jedis来连接集群
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: