redis7.x集群部署

背景介绍

  1. redis 常用集群方案一般分为两种:主从(哨兵)模式 和 redis cluster 方案,因为 cluster亦支持并且官方推荐将node配置成主从结构,即一个master主节点,挂n个slave从节点,所以本方案针对的所有说的集群方案均是指cluster方案;
  2. Redis Cluster是一种服务器Sharding技术,3.0版本开始正式提供。Redis Cluster中,Sharding采用slot(槽)的概念,一共分成16384个槽,这有点儿类pre sharding思路。对于每个进入Redis的键值对,根据key进行散列,分配到这16384个slot中的某一个中。使用的hash算法也比较简单,就是CRC16后16384取模。 Redis集群中的每个node(节点)负责分摊这16384个slot中的一部分,也就是说,每个slot都对应一个node负责处理。当动态添加或减少node节点时,需要将16384个槽做个再分配,槽中的键值也要迁移。 Redis集群,要保证16384个槽对应的node都正常工作,如果某个node发生故障,那它负责的slots也就失效,整个集群将不能工作。
  3. 本次集群部署,三台服务器分别为192.168.0.3、192.168.0.4、192.168.0.5,三个主节点,无从节点。

一、软件下载

https://redis.io/download/

二、解压安装包

cd /web
tar xf redis-7.0.3.tar.gz

三、编译安装

cd redis-7.0.3
make
make install PREFIX=/web/redis-7.0.3

四、修改配置文件

  1. 创建所需目录

mkdir logs conf
mv redis.conf conf/

  1. 修改配置,并设置密码

vim redis.conf
bind 0.0.0.0
protected-mode no
port 6379
daemonize yes
pidfile /web/redis-7.0.3/conf/redis_6379.pid
logfile "/web/redis-7.0.3/logs/redis_6379.log"
appendonly yes
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
masterauth redis123!@#
requirepass redis123!@#

五、启动redis服务

/web/redis-7.0.3/bin/redis-server /web/redis-7.0.3/conf/redis.conf

六、加入到集群

/web/redis-7.0.3/bin/redis-cli --cluster create 192.168.0.3:6379 192.168.0.4:6379 192.168.0.5:6379 -a redis123!@#

七、配置开机自启动

cp utils/redis_init_script /etc/init.d/redis
chmod +x /etc/init.d/redis
vim /etc/init.d/redis
#!/bin/bash
REDISPORT=6379
EXEC=/web/redis-7.0.3/bin/redis-server
CLIEXEC=/web/redis-7.0.3/bin/redis-cli
PIDFILE=/web/redis-7.0.3/conf/redis_${REDISPORT}.pid
CONF="/web/redis-7.0.3/conf/redis.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT -a 'qixiao@redis456#$%' shutdown >/dev/null 2>&1
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac

八、开机自启动

chkconfig redis on
chkconfig redis --list

九、查看集群状态

/web/redis-7.0.3/bin/redis-cli -h 192.168.0.3 -p 6379 -a redis123!@# -c

至此,redis集群安装完成,谢谢观看!

posted @ 2022-07-13 15:51  霸都运维  阅读(2071)  评论(0编辑  收藏  举报