redis集群搭建

本文旨在帮助大家熟悉如何搭建redis集群,redis cluster方案是redis3.0才推出来的,所以搭建的时候注意redis版本,本文以最新的redis-4.0.7为基础搭建

下载redis安装包,编译安装

$ wget http://download.redis.io/releases/redis-4.0.7.tar.gz
$ tar xzf redis-4.0.7.tar.gz
$ cd redis-4.0.7
$ make

中间可能会有提示性错误,一般是缺少对应的库造成的,安装好对应的库再编译就ok了

vim /etc/profile
//在末尾把redis的安装包路径加进去,便于使用redis命令
PATH=$PATH:/home/redis/redis-4.0.7/src

执行命令 source /etc/profile 使命令生效

source /etc/profile

直接执行 redis-server 看redis服务器是否正常启动


cluster搭建

在 /home/redis/目录下创建cluster目录,同时创建logs、conf、data目录,分别用户存储日志文件,配置文件,持久化文件

cd /home/redis
mkdir cluster
cd cluster
mkdir logs
mkdir conf
mkdir data

将 /home/redis/redis-4.0.7/redis.conf 拷贝至 /home/redis/cluster/conf 目录,分别复制6份,根据端口号区分

 cp redis-6379.conf redis-6380.conf
 cp redis-6379.conf redis-6381.conf
 cp redis-6379.conf redis-6382.conf
 cp redis-6379.conf redis-6383.conf
 cp redis-6379.conf redis-6384.conf

分别修改对应的配置文件以及对应的属性

daemonize yes
port 6379
logfile /home/redis/cluster/logs/redis-6379.log
dir /home/redis/cluster/data
#开启集群
cluster-enabled yes
#集群配置文件
cluster-config-file nodes-6379.conf
#集群节点超时时间
cluster-node-timeout 15000

分别启动6个redis服务

redis-server /home/redis/cluster/conf/redis-6379.conf 
redis-server /home/redis/cluster/conf/redis-6380.conf 
redis-server /home/redis/cluster/conf/redis-6381.conf 
redis-server /home/redis/cluster/conf/redis-6382.conf 
redis-server /home/redis/cluster/conf/redis-6383.conf 
redis-server /home/redis/cluster/conf/redis-6384.conf 

这时候集群节点对其他节点并未感知,也不能正常工作,可以执行 cluster nodes 命令查看相关信息


节点握手,执行 redis-cli 默认连接到 6379这台服务器上去,然后分别执行以下命令将剩余redis服务加进集群,

cluster meet 127.0.0.1 6380
cluster meet 127.0.0.1 6381
cluster meet 127.0.0.1 6382
cluster meet 127.0.0.1 6383
cluster meet 127.0.0.1 6384

这时候节点也是不能正常工作的,因为还没分配slot,我们可以写一个shell脚本来批量的给集群内的服务器分配slot

n=0
for ((i=n;i<=5461;i++))
do
   redis-cli -h 127.0.0.1 -p 6379 -a dxy CLUSTER ADDSLOTS $i
done
n=5462
for ((i=n;i<=10922;i++))
do
   redis-cli -h 127.0.0.1 -p 6380 -a dxy CLUSTER ADDSLOTS $i
done
n=10923
for ((i=n;i<=16383;i++))
do
   redis-cli -h 127.0.0.1 -p 6381 -a dxy CLUSTER ADDSLOTS $i
done

ok,slot分配完成,但是还有三台服务器没有使用到,那三台服务器的作用是什么呢?答案是用来充当这三台服务器的从服务器,实现高可用及故障转移用的
使用如下命令可以为主节点指定对应的从节点,分别在三台主节点服务器上执行,对应的集群节点id可以用cluster nodes查询到

cluster replicate 集群节点id

ok,这样一个redis集群算是搭建好了,主节点接受读写操作请求,从节点默认不接受,如果从节点需要接受读请求,需要修改配置文件为只读

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值