编写redis.yml,network_mode为host这样可以减少网卡资源消耗,提高性能,如果要求不高可以使用桥接网络,这样端口可以自由映射;调优修改的配置都是修改宿主机的配置。
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 #最大内存限制,否则可能内存撑爆
#maxmemory 3GB
maxmemory-policy volatile-ttl #淘汰策略,如果内存撑爆了不会拒绝插入数据
考虑到redis一般都是部署在服务器上作为服务存在的。所以,本文的解决方案都是持久性配置,不是临时配置。
第一个警告
将net.core.somaxconn = 1024添加到/etc/sysctl.conf中,然后执行sysctl -p生效配置。
第二个警告
将vm.overcommit_memory = 1添加到/etc/sysctl.conf中,然后执行sysctl -p生效配置。
第三个警告
将echo never > /sys/kernel/mm/transparent_hugepage/enabled添加到/etc/rc.local中,然后执行source /etc/rc.local生效配置。
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000 -q