REDIS7.X哨兵模式

https://github.com/redis/redis/archive/7.2.4.tar.gz

https://redis.io/docs/install/install-redis/

https://blog.csdn.net/const_/article/details/89222823

https://c.biancheng.net/redis/config-summary.html

https://blog.51cto.com/u_15049794/4057388

安装redis

复制代码
mkdir /data && cd /data
tar -zxvf 7.2.4.tar.gz
cd /data/redis-7.2.4
make
make install PREFIX=/usr/local/redis

server 配置

复制代码
# bind 127.0.0.1 -::1
daemonize yes
logfile "6379.log"
masterauth "123456"
requirepass "123456"
dbfilename "dump.rdb"
appendonly yes
appenddirname "appendonlydir"

sentinel 配置

复制代码
port 26379
daemonize yes
logfile "26379.log"
pidfile "/var/run/redis-sentinel.pid"
dir ./
sentinel auth-pass mymaster 123456
sentinel monitor mymaster 192.168.1.171 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 20000

启动脚本

/data/redis-7.2.4/utils/redis_init_script

server /etc/rc.d/init.d/redis-server

复制代码
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

### BEGIN INIT INFO
# Provides:     redis_6379
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFO

REDISPORT=6379
AUTH=123456
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/redis/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 $AUTH shutdown 2>/dev/null
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

sentinel /etc/rc.d/init.d/redis-sentinel

复制代码
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

### BEGIN INIT INFO
# Provides:     redis_6379
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFO

REDISPORT=26379
EXEC=/usr/local/redis/bin/redis-sentinel
CLIEXEC=/usr/local/redis/bin/redis-cli

PIDFILE=/var/run/redis-sentinel.pid
CONF="/usr/local/redis/sentinel.conf"

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis sentinel..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ -f $PIDFILE ]
        then
                echo "Redis sentinel is not running!"
        else
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown 2>/dev/null
                echo "Redis stopped"
        fi
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

增加执行权限

复制代码
chmod u+x /etc/init.d/redis-server /etc/init.d/redis-sentinel

设置开机启动

复制代码
chkconfig redis-sentinel on
chkconfig redis-server on

启动

复制代码
service redis-server start
service redis-sentinel start 

其他

somaxconn 告警

复制代码
The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128

/etc/sysctl.conf
net.core.somaxconn = 1024

vm.overcommit_memory 内存分配告警

复制代码
16821:C 07 Feb 2024 13:53:37.747 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

RedisInsight

https://redis.io/docs/install/install-redisinsight/install-on-docker/

复制代码
docker run -d --name redisinsight -p 5540:5540 redis/redisinsight:latest -v redisinsight:/data/redisinsight

压测

复制代码
redis-benchmark -h host -p port -c connections -n requests
相关推荐
ShiXZ2135 小时前
Redis 常用指令全集:redis-cli 实战速查手册
数据库·redis·缓存
为你学会写情书19 小时前
Redis 从入门到实战:一篇搞定核心数据结构与 NestJS 集成
redis
喜欢的名字被抢了1 天前
长会话状态治理:当Redis失忆后,系统如何自己找回忆
数据库·redis·缓存
海兰1 天前
【数据库】tdsql(mysql8.0)优化思考三
数据库·redis
千河殇 多想和她1 天前
线上 Redis 突然“爆”了,怎么办?
数据库·redis·bootstrap
Bug收容所2 天前
12305项目学习day5
java·spring boot·redis·mysql·spring·rocketmq
智码看视界2 天前
Day33-数据层 × 中间件AI化篇:Redis缓存经典问题-击穿、穿透、雪崩的终极解决方案
数据库·redis·缓存·中间件·穿透·雪崩·击穿
后端观测站2 天前
第九章:Redis 为什么会发生缓存穿透、击穿、雪崩?
redis
海兰3 天前
【高速缓存】RedisVL 存储类型选择指南:Hash 与 JSON
人工智能·redis·算法·缓存·json·哈希算法
Devin~Y3 天前
互联网大厂 Java 面试实录:Spring Boot、MyBatis、Redis、Kafka、Spring Security、RAG 与 MCP 全链路问答
java·redis·kafka·mybatis·spring security·spring mvc·sprint boot