不求甚解

此博客为个人学习之用,如与其他作品雷同,纯属巧合。

导航

redis集群搭建

Posted on 2022-04-03 23:19  三年三班王小朋  阅读(46)  评论(0编辑  收藏  举报

1.首先部署redis单实例服务

https://www.cnblogs.com/wxp100/p/15294550.html

2.创建多个实例

conf目录下复制redis_6380.conf文件5份 

分别自定义名字,如下图

 

需要修改6380对应的配置,取消下面三个cluster前面的注释符号

daemonize yes
port 6380
pidfile /var/run/redis_6380.pid
logfile /u01/redis/log/redis_6380.log
dir /u01/redis/data/6380

cluster-enabled yes
cluster-config-file nodes-6380.conf
cluster-node-timeout 15000

3.同理在data目录下创建对应端口的目录文件

如下图

 

 4创建集群

redis5之前需要ruby

rednis5之后直接使用redis-cli命令就可以创建集群配置了

./redis-cli --cluster create --cluster-replicas 1 -a 'password' 192.168.1.48:6380 192.168.1.48:6381 192.168.1.48:6382 192.168.1.48:6383 192.168.1.48:6384 192.168.1.48:6385

其中 

  • 配置redis需要 ip:端口
  • --cluster create是创建集群参数
  •  --cluster-replicas 1 代表一主一从 参数2代表一主二从
  • -a 后面写redis的登录密码

5.启动redis6个实例

启动每个脚本

/u01/redis/bin/redis-server /u01/redis/conf/redis_6380.conf
/u01/redis/bin/redis-server /u01/redis/conf/redis_6381.conf
/u01/redis/bin/redis-server /u01/redis/conf/redis_6382.conf
/u01/redis/bin/redis-server /u01/redis/conf/redis_6383.conf
/u01/redis/bin/redis-server /u01/redis/conf/redis_6384.conf
/u01/redis/bin/redis-server /u01/redis/conf/redis_6385.conf

6.登录redis节点验证

./redis-cli -p 6381 -a password

查看集群信息 

cluster info

查看集群节点

cluster nodes

 

7.redis集群启停脚本

vim rediscluster.sh

#!/bin/bash
# chkconfig: 2345 10 90
# auther by wangxp

REDIS_HOME=/u01/redis
EXEC=$REDIS_HOME/bin/redis-server
CLIEXEC=$REDIS_HOME/bin/redis-cli

#redis中config下的配置文件
redis_confs=(redis_6380.conf redis_6381.conf redis_6382.conf redis_6383.conf redis_6384.conf redis_6385.conf)
case "$1" in start) for (( i=0; i<${#redis_confs[*]} ;i++)) do $EXEC "$REDIS_HOME/conf/${redis_confs[$i]}" done ;; stop) for (( i=0; i<${#redis_confs[*]} ;i++)) do port=${redis_confs[$i]:6:4} password=`cat "$REDIS_HOME/conf/${redis_confs[$i]}"| grep ^requirepass|awk '{print $2}'` $CLIEXEC -a $password -p $port shutdown >/dev/null 2>&1 # 清空每个实例中的数据,需要重新创建集群 # rm -rf $REDIS_HOME/data/$port/* done ;; restart) $0 stop sleep 1 $0 start ;; init) ip_addr=`ip addr|grep inet|grep -v inet6|grep -v 127.0.0.1|grep -v virbr0|awk '{print $2}'|cut -d / -f 1` password=`cat "$REDIS_HOME/conf/redis_6380.conf"| grep ^requirepass|awk '{print $2}'` ipp1='' for (( i=0; i<${#redis_confs[*]} ;i++)) do port=${redis_confs[$i]:6:4} ipp="$ip_addr:$port " ipp1=$ipp1$ipp done echo "$CLIEXEC --cluster create --cluster-replicas 1 -a $password $ipp1" $CLIEXEC --cluster create --cluster-replicas 1 -a $password $ipp1 ;; *) echo "Usage: $0 {start|stop|restart|init}" ;; esac