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
相关推荐
AAA修煤气灶刘哥2 天前
别让Redis「歪脖子」!一次搞定数据倾斜与请求倾斜的捉妖记
redis·分布式·后端
christine-rr2 天前
linux常用命令(4)——压缩命令
linux·服务器·redis
凯子坚持 c2 天前
精通 Redis list:使用 redis-plus-plus 的现代 C++ 实践深度解析
c++·redis·list
weixin_456904272 天前
跨域(CORS)和缓存中间件(Redis)深度解析
redis·缓存·中间件
波波烤鸭2 天前
Redis 高可用实战源码解析(Sentinel + Cluster 整合应用)
数据库·redis·sentinel
MarkHard1233 天前
如何利用redis使用一个滑动窗口限流
数据库·redis·缓存
island13143 天前
【Redis#10】渐进式遍历 | 数据库管理 | redis_cli | RES
数据库·redis·bootstrap
心想事成的幸运大王3 天前
Redis的过期策略
数据库·redis·缓存
wuyunhang1234563 天前
Redis---集群模式
数据库·redis·缓存
Seven973 天前
Redis是如何进行内存管理的?缓存中有哪些常见问题?如何实现分布式锁?
redis