Redis6 集群单机安装

1|0Redis6 集群单机安装


1|1官网下载


https://download.redis.io/releases/redis-6.2.6.tar.gz http://download.redis.io/redis-stable.tar.gz

1|2文档参考


https://redis.io/documentation

1|3解压编译


#安装编译需要的tcl yum -y install gcc tcl rm -rf /data/redis mkdir -p /data/redis/bin mkdir -p /data/redis/data mkdir -p /data/redis/conf mkdir -p /data/redis/log mkdir -p /data/redis/run cd /data/redis wget http://download.redis.io/redis-stable.tar.gz #wget https://download.redis.io/releases/redis-6.2.6.tar.gz -O redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd /data/redis/redis-stable sudo make install PREFIX=/data/redis

1|4配置准备


#添加到全局环境 cd /data/redis/redis-stable sudo cp src/redis-server /usr/local/bin/ sudo cp src/redis-cli /usr/local/bin/ #拷贝模板配置文件 cd /data/redis/redis-stable \cp redis.conf /data/redis/conf/7100.conf \cp redis.conf /data/redis/conf/7101.conf \cp redis.conf /data/redis/conf/7102.conf \cp redis.conf /data/redis/conf/7103.conf \cp redis.conf /data/redis/conf/7104.conf \cp redis.conf /data/redis/conf/7105.conf mkdir -p /data/redis/data/7100 mkdir -p /data/redis/data/7101 mkdir -p /data/redis/data/7102 mkdir -p /data/redis/data/7103 mkdir -p /data/redis/data/7104 mkdir -p /data/redis/data/7105

1|5修改配置


cd /data/redis/conf sed -i "s/daemonize no/daemonize yes/g" *.conf sed -i "s/appendonly no/appendonly yes/g" *.conf #持久化 sed -i "s/# cluster-enabled yes/cluster-enabled yes/g" *.conf #开启集群 sed -i "s/# requirepass foobared/requirepass Xskj@2021/g" *.conf #修改密码 sed -i "s/loglevel notice/loglevel warning/g" *.conf #更改日志级别 sed -i "s/port 6379/port 7100/g" 7100.conf sed -i "s/port 6379/port 7101/g" 7101.conf sed -i "s/port 6379/port 7102/g" 7102.conf sed -i "s/port 6379/port 7103/g" 7103.conf sed -i "s/port 6379/port 7104/g" 7104.conf sed -i "s/port 6379/port 7105/g" 7105.conf sed -i "s/dir .\//dir \/data\/redis\/data\/7100/g" 7100.conf sed -i "s/dir .\//dir \/data\/redis\/data\/7101/g" 7101.conf sed -i "s/dir .\//dir \/data\/redis\/data\/7102/g" 7102.conf sed -i "s/dir .\//dir \/data\/redis\/data\/7103/g" 7103.conf sed -i "s/dir .\//dir \/data\/redis\/data\/7104/g" 7104.conf sed -i "s/dir .\//dir \/data\/redis\/data\/7105/g" 7105.conf #指定日志文件,默认直接到/dev/null 如果指定了要做日志切割,redis不会自己滚动日志 #sed -i "s/logfile \"\"/logfile \"\/data\/redis\/log\/7100.log\"/g" 7100.conf #sed -i "s/logfile \"\"/logfile \"\/data\/redis\/log\/7101.log\"/g" 7101.conf #sed -i "s/logfile \"\"/logfile \"\/data\/redis\/log\/7102.log\"/g" 7102.conf #sed -i "s/logfile \"\"/logfile \"\/data\/redis\/log\/7103.log\"/g" 7103.conf #sed -i "s/logfile \"\"/logfile \"\/data\/redis\/log\/7104.log\"/g" 7104.conf #sed -i "s/logfile \"\"/logfile \"\/data\/redis\/log\/7105.log\"/g" 7105.conf #集群节点配置文件,这个文件是不能手动编辑的确保每一个集群节点的配置文件不同 sed -i "s/# cluster-config-file nodes-6379.conf/cluster-config-file nodes-7100.conf/g" 7100.conf sed -i "s/# cluster-config-file nodes-6379.conf/cluster-config-file nodes-7101.conf/g" 7101.conf sed -i "s/# cluster-config-file nodes-6379.conf/cluster-config-file nodes-7102.conf/g" 7102.conf sed -i "s/# cluster-config-file nodes-6379.conf/cluster-config-file nodes-7103.conf/g" 7103.conf sed -i "s/# cluster-config-file nodes-6379.conf/cluster-config-file nodes-7104.conf/g" 7104.conf sed -i "s/# cluster-config-file nodes-6379.conf/cluster-config-file nodes-7105.conf/g" 7105.conf

1|6集群启动脚本


vi /usr/local/bin/redis_cluster chmod +x /usr/local/bin/redis_cluster #开机自启 \cp /usr/local/bin/redis_cluster /etc/init.d/redis_cluster #!/bin/bash # shellcheck disable=SC2181 APP_WORKDIR=/data/redis APP_NAME=redis_cluster #使用说明,用来提示输入参数 usage() { echo "Usage: sh 脚本名.sh [start|stop|restart|status]" exit 1 } #检查程序是否在运行 is_exist() { pid=$(ps -ef | grep "redis-server" | grep -v grep | awk '{print $2}') #如果不存在返回1,存在返回0 if [ -z "${pid}" ]; then return 1 else return 0 fi } #启动方法 start() { is_exist # shellcheck disable=SC2181 if [ $? -eq "0" ]; then echo "${APP_NAME} is already running. pid=${pid} ." else tmp=$(ls ${APP_WORKDIR}/conf) for i in ${tmp}; do ${APP_WORKDIR}/bin/redis-server ${APP_WORKDIR}/conf/$i done echo "${APP_NAME} start success" fi status } #停止方法 stop() { is_exist if [ $? -eq "0" ]; then echo "stop ${APP_NAME}!" pgrep redis-server | xargs -exec kill -9 else status fi } #输出运行状态 status() { is_exist if [ $? -eq "0" ]; then echo "${APP_NAME} is running. Pid is ${pid}" else echo "${APP_NAME} is NOT running." fi } #重启 restart() { stop start } #根据输入参数,选择执行对应方法,不输入则执行使用说明 case "$1" in "start") start ;; "stop") stop ;; "status") status ;; "restart") restart ;; *) status usage ;; esac

1|7启动集群


#第一次需要初始化集群,直接yes自动分配M和S redis-cli --cluster create 127.0.0.1:7100 127.0.0.1:7101 127.0.0.1:7102 127.0.0.1:7103 127.0.0.1:7104 127.0.0.1:7105 --cluster-replicas 1 --pass Xskj@2021
模块名称 模块功能 是否需要运行
sjn-admin-server 管理和监控SpringBoot应用程序
sjn-alarm-server 告警主题数据分析接口
sjn-authority-server 应用授权程序
sjn-common 通用依赖
sjn-device-server 设备主题数据分析接口
sjn-display-client 智慧可视化大屏接口
sjn-dynamic-datasource 多数据源依赖
sjn-gateway-server 微服务网关鉴权
sjn-judgment-server 研判主题数据分析接口
sjn-kms-server 加解密票据管理
sjn-operation-server 运维统计接口
sjn-personnel-server 人员主题数据接口
sjn-smartstatistics-server 智能统计主题数据分析接口
sjn-vehicle-server 车辆统计主题数据分析接口

1|8常用命令


#查看集群信息 redis-cli -c -h 127.0.0.1 -p 7100 --pass Xskj@2021 cluster info #查看集群节点 redis-cli -c -h 127.0.0.1 -p 7100 --pass Xskj@2021 cluster nodes #连接集群使用 redis-cli -c -h 127.0.0.1 -p 7100 --pass Xskj@2021 /opt/redis/sbin/redis-cli --h 192.168.10.19 -p 7001 --pass gAlbNoAaWYEhdEYJ

1|9一键脚本


#! /usr/bin/bash ##redis任何版本全程自动化源码编译安装 ##用法:sh redis-install.sh 4.0.10 (后面跟的是你需要的版本号,需要什么版本就写什么版本),我这里安装的4.0.10 version=$1 usage(){ echo "usage: $0 version" } if [ $# -ne 1 ] then usage exit -1 fi #Redis安装包下载 cd /usr/local/src if [ ! -f redis-${version}.tar.gz ] then curl -o /usr/local/src/redis-${version}.tar.gz http://download.redis.io/releases/redis-${version}.tar.gz fi #Redis依赖包安装 yum clean all yum makecache fast yum -y install gcc gcc-c++ tcl #编译Redis所需要的gcc yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils source /opt/rh/devtoolset-9/enable echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile gcc --version ##内系统参数核优化 cat >> /etc/rc.d/rc.local << "EOF" ##关闭Linux的THP(内存管理系统)通过使用更大的内存页面,来减少具有大量内存的计算机上的TLB的开销 if [ -f /sys/kernel/mm/transparent_hugepage/enabled ] then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if [ -f /sys/kernel/mm/transparent_hugepage/defrag ] then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi EOF chmod u+x /etc/rc.d/rc.local if [ -f /sys/kernel/mm/transparent_hugepage/enabled ] then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if [ -f /sys/kernel/mm/transparent_hugepage/defrag ] then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi cat >> /etc/sysctl.conf << "EOF" #Linux系统内核参数优化 net.core.somaxconn = 2048 net.ipv4.tcp_max_syn_backlog = 2048 vm.overcommit_memory = 1 EOF sysctl -p cat > /etc/security/limits.conf << "EOF" root soft nofile 65535 root hard nofile 65535 * soft nofile 65535 * hard nofile 65535 EOF #Redis编译安装 cd /usr/local/src tar -zxvf redis-${version}.tar.gz cd /usr/local/src/redis-${version} make make PREFIX=/usr/local/redis install #Redis基础配置 mkdir -p /usr/local/redis/{etc,logs,data} egrep -v "^$|^#" /usr/local/src/redis-${version}/redis.conf > /usr/local/redis/etc/redis.conf #sed -i "s/bind 127.0.0.1/bind 0.0.0.0/g" /usr/local/redis/etc/redis.conf sed -i "s/protected-mode yes/protected-mode no/g" /usr/local/redis/etc/redis.conf sed -i "s/daemonize no/daemonize yes/g" /usr/local/redis/etc/redis.conf sed -i "s/pidfile \/var\/run\/redis_6379.pid/pidfile \/usr\/local\/redis\/redis.pid/g" /usr/local/redis/etc/redis.conf sed -i "s/dir \.\//dir \/usr\/local\/redis\/data/g" /usr/local/redis/etc/redis.conf sed -i "s/logfile \"\"/logfile \"\/usr\/local\/redis\/logs\/redis.log\"/g" /usr/local/redis/etc/redis.conf sed -i "s/dbfilename dump.rdb/dbfilename dump.rdb/g" /usr/local/redis/etc/redis.conf sed -i "s/appendfilename \"appendonly.aof\"/appendfilename \"appendonly.aof\"/g" /usr/local/redis/etc/redis.conf #PATH配置 echo "export PATH=${PATH}:/usr/local/redis/bin" >>/etc/profile source /etc/profile #启动redis服务 /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf #查看redis监听端口 netstat -tanp|grep redis

__EOF__

本文作者JessePinkMan
本文链接https://www.cnblogs.com/edclol/p/17282457.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   edclol  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示