Redis 5.0.7 cluster集群搭建

5 篇文章 0 订阅
3 篇文章 0 订阅

Redis单机版搭建

wget http://download.redis.io/releases/redis-5.0.7.tar.gz

 

tar xzf redis-5.0.7.tar.gz

cd redis-5.0.7

make && make install

在redis安装目录创建两个文件夹etc(用于存放redis.conf),bin(存放相应的命令脚本)

将redis.conf移到etc目录中,将src下的mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-check-rdb、redis-cli、redis-server移到bin目录中

mv redis.conf etc

/#进入src目录下

mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server ../bin/

 

配置redis.conf(常用配置项)

#注释掉这一行,否则其它机器不可以访问当前redis,也可以改成其他ip

#bind 127.0.0.1

#将protected-mode后面的yes改成no,也是为了让其他ip访问当前redis 

protected-mode no

#将daemonize后面的no改成yes,这个是为了让redis后台运行。 

daemonize yes

#日志文件所在目录

logfile /usr/local/redis-5.0.7/logs/redis.log

#可配置密码,也可不配,例如123456是我设置的密码 #如果配置了密码,在用redis-cli连接的时候需要用【auth ‘密码’】命令才用使用requirepass 123456

配置 redis 环境变量

 

保存之后执行source ~/.bashrc(如果是/etc/profile文件,则是source /etc/profile)

 

启动redis

redis-server /usr/local/redis-5.0.7/etc/redis.conf

 

看到pong 说明已经成功安装

 

 

Redis集群搭建

Redis集群是去中心化的,并没有主从节点之分。集群中要求节点数量必须是奇数,所以至少要有三个节点,并且每个节点至少有一备份节点,所以至少需要6个redis服务实例。redis5 版本cluster搭建比低版本容易很多,少了很多操作

我这边有三个服务器,每个服务器上启两个redis,一个master节点,一个save节点

三台服务器。每台redis端口号分别为7001,7002

192.168.0.102

192.168.0.107

192.168.0.108

创建redis节点配置文件

1、在redis目录下创建redis_cluster目录,在redis_cluster目录下创建7001,7002两个节点目录,将redis.conf(基于单机安装,配置项跟之前的一样)复制到7001,7002两个目录中。

 

2、分别修改7001,7002目录下的redis.conf配置文件

#7001目录下的redis.conf

port 7001 #端口

pidfile /var/run/redis_7001.pid #进程文件

cluster-enabled yes #开启集群功能

cluster-config-file nodes-7001.conf #集群配置文件,集群启动后生成appendonly yes  #开启日志

 

#7002目录下的redis.confport 7002 #端口

pidfile /var/run/redis_7002.pid #进程文件c

luster-enabled yes #开启集群功能

cluster-config-file nodes-7002.conf #集群配置文件,集群启动后生成

appendonly yes #开启日志

3、将redis_cluster用scp命令分发到另外两台服务器

scp -r redis-cluster eshop-cache03:/usr/local/

 

4、依次启动6个redis实例,(下面以脚本统一启动)

#!/bin/bash

echo '开始启动redis-cluster'

 

redisnodes=('eshop-cache01' 'eshop-cache02' 'eshop-cache03')

ports=('7001' '7002')

 

for ip in ${redisnodes[@]};

do

for port in ${ports[@]};

do

echo "start redis $ip:$port"

ssh $ip /usr/local/redis/bin/redis-server /usr/local/redis-cluster/$port/redis.conf

done

done

 

echo '启动redis-cluster结束'

 

这里要注意你redis的安装目录

vi start-all.sh

chmod +x start-all.sh

 

 

因为中间放了个连接器所以 截图有变化,这个不影响。。。

创建集群命令,一共六个节点

如果设置了密码则加上 redis-cli -a 123456

redis-cli --cluster create 192.168.0.102:7001 192.168.0.107:7001 192.168.0.108:7001 192.168.0.102:7002 192.168.0.107:7002 192.168.0.108:7002 --cluster-replicas 1

 

执行之后会发现slots的分布

 

 

6、验证集群

[-c] 参数是为了启动集群模式,缺少此参数会在设置的时候直接报错

redis-cli -c -h 192.168.0.102 -p 7001

 

 

redirected 这个是为了做重定向操作,每个节点固定有16384个嘈

 

关闭集群

可以一个一个关闭,但这边使用脚本统一关闭

#!/bin/bash

#所有服务器节点的hostname

allnodes=('cnode-1' 'cnode-2' 'cnode-3')

#端口号开始

PORT=7001

#结束端口号

ENDPORT=7003

#密码,如果redis没配置密码可省略

PASSWROD=123456

while [ $((PORT < ENDPORT)) != "0" ]; do

for ip in ${allnodes[@]};

do

#判断某个端口是否已被占用,如果是,则执行关闭命令

count=`ssh $ip lsof -i:$PORT | wc -l`

if [ $count -gt 0 ];

then

echo "Stopping Redis $ip:$PORT"

ssh $ip redis-cli -p $PORT -a $PASSWROD shutdown 2>/dev/null

else

echo "no redis $ip:$PORT"

fi

done

PORT=$((PORT+1))

done

exit 0

 

 

 

中间或多或少会有一些坑,因为每个人的环境都不一样,建议先把环境搭建起来,配置hosts 域名,节点间无密码登录

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值