安装依赖
yum install gcc-c++
yum install ruby ruby-devel rubygems rpm-build
安装官方脚本
wget https://rubygems.org/downloads/redis-3.2.1.gem
gem install redis-3.2.1.gem
下载Redis源码
wget http://download.redis.io/releases/redis-3.2.11.tar.gz
tar zxvf redis-3.2.11.tar.gz
cd redis-3.2.11
make
make PREFIX=/usr/local/redis install
# 拷贝conf文件
mkdir /usr/local/redis/conf/
cp redis.conf /usr/local/redis/conf/redis.conf
# 启动redis
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
搭建Redis集群
# 复制多个conf文件
cd /usr/local/redis/conf/
cp redis.conf redis_xxx.conf
# 修改配置,每个conf文件都需修改
vim redis_xxx.conf
port xxxx #修改端口
cluster-enabled yes #打开注释,开启集群模式
cluster-config-file nodes-xxxx.conf #集群的配置文件
pidfile /var/run/redis_xxxx.pid #pidfile文件
logfile "xxxx.log" #日志文件
dbfilename dump_xxxx.rdb #rdb持久化文件
cluster-node-timeout 5000 #请求超时,单位毫秒
appendonly yes #开启aof持久化方式
vim start-all.sh
#! /bin/bash
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis_1.conf
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis_2.conf
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis_3.conf
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis_4.conf
chmod +x start-all.sh
./start-all.sh
# 查看是否启动成功
ps aux | grep redis
root 2780 0.8 0.5 139016 9808 ? Ssl 09:29 0:45 /usr/local/redis-cluster/redis/bin/redis-server 0.0.0.0:7001 [cluster]
root 2782 0.9 0.4 136968 7756 ? Ssl 09:29 0:46 /usr/local/redis-cluster/redis/bin/redis-server 0.0.0.0:7002 [cluster]
创建集群
第一步:搭建集群 ./redis-trib.rb create ,选择yes接受建议的配置
第二步:进入集群客户端 ./redis-cli -h 任意主机host -p 任意主机port -c,-c表示以集群方式连接redis
第三步:保存数据
第四步:cluster info 查询集群状态信息
第五步:cluster nodes 查询集群结点信息
cd redis-3.2.11
cp src/redis-trib.rb /usr/local/redis-cluster/redis-trib.rb
# 集群创建命令: ./redis-trib.rb create 创建集群,--replicas 1 给每个主机分配一个从机,后面其他参数都是redis服务的ip:port。最后输入yes来接受建议的配置
redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.01:7002 127.0.0.1:7003 127.0.0.1:7004
[OK] All 16384 slots covered. # 表示创建成功
/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 7001 -c
127.0.0.1:7001> 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:6
cluster_my_epoch:3
cluster_stats_messages_sent:12578
cluster_stats_messages_received:12578
添加防火墙过滤
firewall-cmd --zone=public --add-port=7001/tcp --permanent
firewall-cmd --zone=public --add-port=7002/tcp --permanent
firewall-cmd --zone=public --add-port=7003/tcp --permanent
firewall-cmd --zone=public --add-port=7004/tcp --permanent
firewall-cmd --zone=public --add-port=17001/tcp --permanent # 集群通信端口号为redis端口加10000
firewall-cmd --zone=public --add-port=17002/tcp --permanent # 集群通信端口号为redis端口加10000
firewall-cmd --zone=public --add-port=17003/tcp --permanent # 集群通信端口号为redis端口加10000
firewall-cmd --zone=public --add-port=17004/tcp --permanent # 集群通信端口号为redis端口加10000
firewall-cmd --reload # 重新加载
如有错误,欢迎指出。