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
相关推荐
Java初学者小白2 分钟前
秋招Day14 - Redis - 应用
java·数据库·redis·缓存
奈斯ing27 分钟前
【Redis篇】数据库架构演进中Redis缓存的技术必然性—高并发场景下穿透、击穿、雪崩的体系化解决方案
运维·redis·缓存·数据库架构
一眼万年041 小时前
Redis Cluster模式
redis·微服务
deriva3 小时前
.netcore+ef+redis+rabbitmq+dotcap先同步后异步再同步的方法,亲测有效
redis·rabbitmq·.netcore
爱上语文4 小时前
Redis基础(5):Redis的Java客户端
java·开发语言·数据库·redis·后端
Java初学者小白7 小时前
秋招Day15 - Redis - 缓存设计
java·数据库·redis·缓存
都叫我大帅哥10 小时前
Redis GEO全解:从入门到精通,让你的应用“空间觉醒”
redis
都叫我大帅哥10 小时前
Redis 的 HyperLogLog:用 12KB 数清银河系星星的魔法计数器
redis
TT哇11 小时前
【Java EE初阶】计算机是如何⼯作的
java·redis·java-ee
陌殇殇14 小时前
SpringBoot整合SpringCache缓存
spring boot·redis·缓存