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
相关推荐
minihuabei5 小时前
linux centos 安装redis
linux·redis·centos
monkey_meng7 小时前
【Rust中多线程同步机制】
开发语言·redis·后端·rust
hlsd#7 小时前
go 集成go-redis 缓存操作
redis·缓存·golang
奶糖趣多多9 小时前
Redis知识点
数据库·redis·缓存
CoderIsArt10 小时前
Redis的三种模式:主从模式,哨兵与集群模式
数据库·redis·缓存
ketil2715 小时前
Redis - String 字符串
数据库·redis·缓存
王佑辉17 小时前
【redis】延迟双删策略
redis
生命几十年3万天17 小时前
redis时间优化
数据库·redis·缓存
Shenqi Lotus18 小时前
Redis-“自动分片、一定程度的高可用性”(sharding水平拆分、failover故障转移)特性(Sentinel、Cluster)
redis·sentinel·cluster·failover·sharding·自动分片·水平拆分
YMY哈1 天前
Redis常见面试题(二)
redis