#!/bin/bash
version=5.0.2
port=6379
password='password'
echo 'Asia/Shanghai' > /etc/timezone
docker stop redis-${port}
docker rm redis-${port}
docker run --name redis-${port} -d \
--restart=always \
--net host \
-v /etc/sysctl.conf:/etc/sysctl.conf \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
-v $(pwd)/data-${port}:/data \
redis:${version} redis-server \
--bind 0.0.0.0 \
--port ${port} \
--requirepass "${password}" \
--protected-mode no \
--maxmemory 512M \
--maxmemory-policy noeviction \
--maxclients 100000 \
--appendonly yes \
--appendfsync everysec \
--auto-aof-rewrite-percentage 100 \
--auto-aof-rewrite-min-size 1024M
# aof是2倍触发
# --auto-aof-rewrite-percentage 100
# aof文件超过20000mb
# --auto-aof-rewrite-min-size 20000mb
# --maxmemory-policy volatile-lru
# 1、volatile-lru:只对设置了过期时间的key进行LRU(默认值)
# 2、allkeys-lru : 删除lru算法的key
# 3、volatile-random:随机删除即将过期key
# 4、allkeys-random:随机删除
# 5、volatile-ttl : 删除即将过期的
# 6、noeviction : 永不过期,返回错误
--cluster-replicas
是定义副本数
win: RESP
mac: RESP