1.編寫docker-compose文件
編寫redis.yml祭饭,network_mode為host這樣可以減少網(wǎng)卡資源消耗,提高性能游沿,如果要求不高可以使用橋接網(wǎng)絡乡小,這樣端口可以自由映射;調(diào)優(yōu)修改的配置都是修改宿主機的配置奢啥。
version: '3'
services:
redis:
image: redis:6.0.10-alpine
container_name: docker_redis
network_mode: "host"
restart: always
volumes:
- /opt/redis/data:/data:rw
- /opt/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
- /opt/redis/logs:/logs
command:
redis-server /usr/local/etc/redis/redis.conf
配置文件
requirepass 你的密碼
#daemonize yes #是否開啟守護
bind 0.0.0.0
appendonly no #開啟aof緩存秸仙,但是要頻繁I/O,建議關掉
maxmemory 1024MB #最大內(nèi)存限制桩盲,否則可能內(nèi)存撐爆
#maxmemory 3GB
maxmemory-policy volatile-ttl #淘汰策略寂纪,如果內(nèi)存撐爆了不會拒絕插入數(shù)據(jù)
2.redis 調(diào)優(yōu)
考慮到redis一般都是部署在服務器上作為服務存在的。所以赌结,本文的解決方案都是持久性配置捞蛋,不是臨時配置。
第一個警告
將net.core.somaxconn = 1024添加到/etc/sysctl.conf中姑曙,然后執(zhí)行sysctl -p生效配置襟交。
第二個警告
將vm.overcommit_memory = 1添加到/etc/sysctl.conf中,然后執(zhí)行sysctl -p生效配置伤靠。
第三個警告
將echo never > /sys/kernel/mm/transparent_hugepage/enabled添加到/etc/rc.local中捣域,然后執(zhí)行source /etc/rc.local生效配置。
3.性能測試
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000 -q