共计 5480 个字符,预计需要花费 14 分钟才能阅读完成。
Linux 版本:Ubuntu15.10 系统。
(要让集群正常工作至少需要 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
1:下载 redis。官网下载 3.0.0 版本,之前 2. 几的版本不支持集群模式
下载地址:http://download.redis.io/releases/redis-3.0.7.tar.gz
2:上传服务器,解压,编译
tar -zxvf redis-3.0.7.tar.gz
mv redis-3.0.7 /usr/local/redis3.0
cd /usr/local/redis3.0
make
之后就生成了 redis-server redis-client 等文件在 src 里。
3:创建集群需要的目录
mkdir -p /usr/local/cluster
cd /usr/local/cluster
mkdir 7000
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005
4:修改配置文件 redis.conf
cp /usr/local/redis3.0/redis.conf /usr/local/cluster
vi redis.conf
## 修改配置文件中的下面选项
pidfile /var/run/redis.7000.pid #个性化
port 7000 #个性化
daemonize yes
cluster-enabled yes
cluster-config-file nodes.7000.conf #个性化
cluster-node-timeout 5000
appendonly yes
appendfilename "appendonly.7000.aof" #个性化
## 修改完 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 文件中 标注个性化的 参数,分别改为对应的文件夹的名称
5:分别启动这 6 个 redis 实例
vi /usr/local/cluster/redis-start.sh
加入以下内容
#!/bin/sh
/usr/local/redis3.0/src/redis-server /usr/local/cluster/7000/redis.conf &
/usr/local/redis3.0/src/redis-server /usr/local/cluster/7001/redis.conf &
/usr/local/redis3.0/src/redis-server /usr/local/cluster/7002/redis.conf &
/usr/local/redis3.0/src/redis-server /usr/local/cluster/7003/redis.conf &
/usr/local/redis3.0/src/redis-server /usr/local/cluster/7004/redis.conf &
/usr/local/redis3.0/src/redis-server /usr/local/cluster/7005/redis.conf &
然后
chmod +x /usr/local/cluster/redis-start
/usr/local/cluster/redis-start
## 启动之后使用命令查看 redis 的启动情况 ps -ef|grep redis
6:执行 redis 的创建集群命令创建集群
安装 ruby , 因为./redis-trib.rb 是执行的 ruby 的脚本,需要 ruby 的环境
sudo apt-get install ruby
为了执行 redis-trib.rb 需要安装 gem redis sudo gem install redis 可能会有长城防火墙的问题
可以去 https://rubygems.org/gems/redis/versions/3.2.2 下载最新版本。
然后用命令 sudo gem install redis-3.2.2.gem
cd /usr/local/redis3.0/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
>>> 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: 1cdc6971ddbcf64427a9499e19b048afa55aff08 127.0.0.1:7000
slots:0-5460 (5461 slots) master
M: a355b2ccb1fdf413652a14cec722076af958a079 127.0.0.1:7001
slots:5461-10922 (5462 slots) master
M: 0bc286b514d36e7195142ff0d55a87542048b5a9 127.0.0.1:7002
slots:10923-16383 (5461 slots) master
S: a3b7c85fe957917bd383b181de3f1a3f31df8a05 127.0.0.1:7003
replicates 1cdc6971ddbcf64427a9499e19b048afa55aff08
S: 9f0f4045497a72b64783fd9c2387f38b7e3bda6c 127.0.0.1:7004
replicates a355b2ccb1fdf413652a14cec722076af958a079
S: f4b371c4e1d0fddfbe1552e540ddd36a5a00200b 127.0.0.1:7005
replicates 0bc286b514d36e7195142ff0d55a87542048b5a9
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: 1cdc6971ddbcf64427a9499e19b048afa55aff08 127.0.0.1:7000
slots:0-5460 (5461 slots) master
M: a355b2ccb1fdf413652a14cec722076af958a079 127.0.0.1:7001
slots:5461-10922 (5462 slots) master
M: 0bc286b514d36e7195142ff0d55a87542048b5a9 127.0.0.1:7002
slots:10923-16383 (5461 slots) master
M: a3b7c85fe957917bd383b181de3f1a3f31df8a05 127.0.0.1:7003
slots: (0 slots) master
replicates 1cdc6971ddbcf64427a9499e19b048afa55aff08
M: 9f0f4045497a72b64783fd9c2387f38b7e3bda6c 127.0.0.1:7004
slots: (0 slots) master
replicates a355b2ccb1fdf413652a14cec722076af958a079
M: f4b371c4e1d0fddfbe1552e540ddd36a5a00200b 127.0.0.1:7005
slots: (0 slots) master
replicates 0bc286b514d36e7195142ff0d55a87542048b5a9
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
这样 redis-cluster 集群就启动了
7、查看集群目前状况:
$ redis-cli -c -p 7000
127.0.0.1:7000> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:0
cluster_stats_messages_sent:8770
cluster_stats_messages_received:8770
8、测试存值取值:每一次操作过后可能就跳到别的里面了。就是那个 Redirected to slot ……
下面关于 Redis 的文章您也可能喜欢,不妨参考下:
Ubuntu 14.04 下 Redis 安装及简单测试 http://www.linuxidc.com/Linux/2014-05/101544.htm
Redis 主从复制基本配置 http://www.linuxidc.com/Linux/2015-03/115610.htm
Redis 集群明细文档 http://www.linuxidc.com/Linux/2013-09/90118.htm
Ubuntu 12.10 下安装 Redis(图文详解)+ Jedis 连接 Redis http://www.linuxidc.com/Linux/2013-06/85816.htm
Redis 系列 - 安装部署维护篇 http://www.linuxidc.com/Linux/2012-12/75627.htm
CentOS 6.3 安装 Redis http://www.linuxidc.com/Linux/2012-12/75314.htm
Redis 安装部署学习笔记 http://www.linuxidc.com/Linux/2014-07/104306.htm
Redis 配置文件 redis.conf 详解 http://www.linuxidc.com/Linux/2013-11/92524.htm
Redis 的详细介绍:请点这里
Redis 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-06/132340.htm