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
安装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