#redis
#启动
setup-6379.sh
redis-cluster.sh
#!/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 : 永不过期,返回错误
#!/bin/bash
version=7.4.0
password=""
echo 'Asia/Shanghai' > /etc/timezone
# 大内存时使用
# if ! grep -q "vm.overcommit_memory = 1" /etc/sysctl.conf;then echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf && sysctl -p;fi
nodes="
7000
7001
7002
7003
7004
7005
"
for node in ${nodes};do
port=${node}
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 \
--port ${port} \
--bind 0.0.0.0 \
--requirepass "${password}" \
--masterauth "${password}" \
--protected-mode no \
--maxmemory 64M \
--maxmemory-policy noeviction \
--maxclients 100000 \
--cluster-enabled yes \
--cluster-config-file nodes.conf \
--cluster-node-timeout 5000 \
--appendonly yes \
--appendfsync everysec \
--auto-aof-rewrite-percentage 100 \
--auto-aof-rewrite-min-size 128M
# aof是2倍触发
# --auto-aof-rewrite-percentage 100
# aof文件超过20000mb
# --auto-aof-rewrite-min-size 20000mb
done
# 官方文档
# https://redis.io/docs/reference/eviction/
# 创建集群命令
# docker exec -it redis-7000 redis-cli --cluster create --cluster-replicas 1 192.168.1.1:7000 192.168.1.1:7001 192.168.1.1:7002 192.168.1.1:7003 192.168.1.1:7004 192.168.1.1:7005
# 查看集群状态
# docker run -it --rm --net host redis:7.4.0 redis-cli -p 7000 --cluster check 192.168.1.1:7000
# 查看帮助
# docker run -it --rm --net host redis:7.4.0 redis-cli -p 7000 --cluster help
# 查询 key,keys/scan 命令只能显示当前节点的数据
# docker run -it --rm --net host redis:7.4.0 redis-cli -p 7000 --cluster get key1Tip
--cluster-replicas是定义副本数
#图形化连接工具
win: RESP
mac: RESP
