docker安装redis大全(持续更新)
提示:这里是docker安装redis的参考文档,帮助各位高效便捷的安装redis,如有问题请留言指出,谢谢!
文章目录
前言
主要就是:docker直接安装redis,docker通过docker-compose安装redis,docker安装redis主从,docker安装redis哨兵模式,docker安装redis集群(后续更新),文末有 redis配置文件(去除注释版)
一、docker直接安装redis
1、docker run -p 6379:6379 --name redis --privileged=true -v /home/redis/redis.conf:/etc/redis/redis.conf -v /home/redis/data:/data -d redis:latest redis-server /etc/redis/redis.conf
tips:
1、执行上述命令之前要先在/home/redis文件夹下创建redis.conf文件,建议直接复制一份进来;
2、配置文件中bind 127.0.0.1 要注释掉,否则只能本机访问;
3、配置文件中protected-mode no 要设置为no,否则只能本机访问;
4、配置文件中daemonize no 建议设置为no,因为docker run -d已经表示后台运行,可能会冲突;
2、docker run -p 6379:6379 --name redis --privileged=true -v /home/redis:/etc/redis -v /home/redis/data:/data -d redis:latest redis-server /etc/redis/redis.conf
tips:
1、这个和上述命令的区别就是配置文件目录绑定不同,上一个是/etc/redis/redis.conf,正常来说这个redis.conf应该绑定宿主机/home/redis/redis.conf文件,
但是执行1命令的时候,宿主机的/home/redis目录下如果没有redis.conf这个文件的话,那么/etc/redis/redis.conf会被认为是个目录,结果真正配置文件会被配置
到/etc/redis/redis.conf/redis.conf,这后面的启动命令就无法按自定义的配置文件启动了。
2、执行2命令就可以先直接运行redis容器,然后在/home/redis目录下上传配置好的redis.conf,再docker restart redis即可;
3、可以通过docker exec -it redis bash命令进入redis内部,然后cd /etc/redis中 执行ls来查看改目录下的redis.conf是文件还是文件夹。
二、docker-compose安装redis
前提:先安装docker-compose和docker,CSDN上有攻略,这里就不介绍了
1、cd /home/redis
2、vim docker-compose.yml
1)、没有vim的,执行apt-get update, 再执行apt install -y vim
3、复制粘贴以下内容(前提是/home/redis目录中已经有了redis.conf):
version: '3'
services:
redis:
image: redis:latest
restart: always
container_name: redis
privileged: true
ports:
- 6379:6379
environment:
TZ: Asia/Shanghai
volumes:
- /home/redis/data:/data
- /home/redis/redis.conf:/etc/redis/redis.conf
command: ['redis-server','/etc/redis/redis.conf']
4、在docker-compose.yml目录下执行docker-compose up -d(必须在docker-compose.yml所在目录下执行哦)
三、docker安装redis实现主从
1、先创建/home/redis/master/redis.conf、/home/redis/slave1/redis.conf、/home/redis/slave2/redis.conf文件
2、运行以下命令
docker run -p 6379:6379 --name redis-master --privileged=true -v /home/redis/master/redis.conf:/etc/redis/redis.conf -v /home/redis/master/data:/data -d redis:latest redis-server /etc/redis/redis.conf
docker run -p 6380:6379 --name redis-slave1 --privileged=true -v /home/redis/slave1/redis.conf:/etc/redis/redis.conf -v /home/redis/slave1/data:/data -d redis:latest redis-server /etc/redis/redis.conf
docker run -p 6381:6379 --name redis-slave2 --privileged=true -v /home/redis/slave2/redis.conf:/etc/redis/redis.conf -v /home/redis/slave2/data:/data -d redis:latest redis-server /etc/redis/redis.conf
3、执行docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis-master,找到redis-master的内网ip:172.17.0.2(我的)
4、master的配置文件用最后的redis配置去除注释版就行。slave1需要修改replicaof 172.17.0.2 6379,slave2需要修改replicaof 172.17.0.2 6379,
如果redis-master设置密码,需要在slave1、slave2中修改masterauth <master-password> 属性,我这里没有设置密码。
5、执行docker restart redis-slave1, docker restart redis-slave2
6、执行docker exec -it redis-master bash进入到redis-master的交互式命令中,再执行redis-cli info replication打印出信息
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=172.17.0.3,port=6379,state=online,offset=25337,lag=0
slave1:ip=172.17.0.4,port=6379,state=online,offset=25175,lag=1
master_failover_state:no-failover
master_replid:be602cc572fb19accfb763f4447795d8cb1e7efc
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:25337
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:25337
结果出现:
connected_slaves:2
slave0:ip=172.17.0.3,port=6379,state=online,offset=25337,lag=0
slave1:ip=172.17.0.4,port=6379,state=online,offset=25175,lag=1
表示已经搭建好啦
四、docker-compose安装redis实现主从
1、先创建/home/redis/master/redis.conf、/home/redis/slave1/redis.conf、/home/redis/slave2/redis.conf文件
2、文档末尾有去除注释版redis配置,将整理好的redis.conf配置文件分别复制到上面3个文件夹下;
3、master的配置文件用最后的redis配置去除注释版就行。slave1需要修改replicaof <masterIp> 6379,slave2需要修改replicaof <masterIp> 6379,
如果redis-master设置密码,需要在slave1、slave2中修改masterauth <master-password> 属性,我这里没有设置密码。以上的<masterIp>换为自己的
redis-master的ip地址。
4、创建docker-compose.yml:vim docker-compose.yml
5、修改docker-compose.yml配置(注意格式,每一级相差2空格,不能用tab键,tab键一下子就是4个空格,会报错:Top level.....)
version: "3" # docker-compose的版本号,就用3就行了,懒得去找版本对应
services: #所有服务的入口 固定写法
redis-master: #自定义服务名
image: redis:latest #我们所需要运行的镜像,没有的话,会自定为我们下载
container_name: redis-master #镜像运行后的容器名,自定义
ports:
- 6379:6379 #宿主机的6379映射容器内部的6379端口
volumes: #目录挂载分号 : 右边代表容器内部的目录,分号左边表示宿主机的目录,
- /home/redis/master/redis.conf:/etc/redis/redis.conf
- /home/redis/master/data:/data
command: ['redis-server','/etc/redis/redis.conf'] #容器启动后,运行的命令
redis-slave1:
image: redis:latest
container_name: redis-slave1
ports:
- 6380:6379
volumes:
- /home/redis/slave1/redis.conf:/etc/redis/redis.conf
- /home/redis/slave1/data:/data
# 从主节点同步数据到从节点
command: ['redis-server','/etc/redis/redis.conf'] #容器启动后,运行的命令
depends_on:
- redis-master
redis-slave2:
image: redis:latest
container_name: redis-slave2
ports:
- 6381:6379
volumes:
- /home/redis/slave2/redis.conf:/etc/redis/redis.conf
- /home/redis/slave2/data:/data
command: ['redis-server','/etc/redis/redis.conf'] #容器启动后,运行的命令
depends_on:
- redis-master
6、在docker-compose.yml目录下执行docker-compose up -d(必须在docker-compose.yml所在目录下执行哦)
7、执行docker exec -it redis-master bash进入到redis-master的交互式命令中,再执行redis-cli info replication打印出信息
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=172.17.0.3,port=6379,state=online,offset=25337,lag=0
slave1:ip=172.17.0.4,port=6379,state=online,offset=25175,lag=1
master_failover_state:no-failover
master_replid:be602cc572fb19accfb763f4447795d8cb1e7efc
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:25337
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:25337
结果出现:
connected_slaves:2
slave0:ip=172.17.0.3,port=6379,state=online,offset=25337,lag=0
slave1:ip=172.17.0.4,port=6379,state=online,offset=25175,lag=1
表示已经搭建好啦
8、如果你已经出现以上打印信息,那你ok了,不然可能是两台从机配置文件中的设置的#replicaof 172.17.0.2 6379 的master的ip设置错了,执行docker inspect redis-master,
打印出来的信息中最下面找到"IPAddress": "172.18.0.2",将这个IP换成replicaof 后面的ip,两台从机都换,然后执行docker restart 容器名:
"Networks": {
"redis_default": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"redis-master",
"redis-master",
"ab696d9a5237"
],
"NetworkID": "f1d098db55a2e2764c080ddebe54af28848a8b675c5341f5f3120dbc1cc35436",
"EndpointID": "43290c5d104d6a0efeb94e7f743cd171dd29b2da819e054924079edef81f1eb9",
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:12:00:02",
"DriverOpts": null
}
}
9、其实最好在docker-compose.yml中设置自定义网络,为每个redis服务都设置自定义ip,省的docker自己分配ip
五、docker安装redis实现哨兵
建议:这里是一台机器搭建redis哨兵,实际操作也可在centos镜像中安装redis,实现redis-sentinel,再把安装过redis环境的容器打包成镜像,然后再到其他服务器 的docker中执行docker load,在运行。也可以在Dockerfile中定义全部脚本,直接执行docker build命令打包成镜像,实现的方式有很多,具体情况具体面对。
1、先通过三或四实现redis主从设置;
2、【master容器配置哨兵】:
1)、docker exec -it redis-master bash
2)、cd /
3)、apt-get update (更新依赖)
4)、apt-get install -y vim (安装vim)
5)、vim sentinel.conf (建立sentinel(哨兵模式)的配置文件,保存退出,内容如下:)
port 26379 (指定哨兵监听端口)
dir "/data" #sentinel工作目录
logfile "sentinel.log" #日志文件
sentinel monitor redis-master-sentinel 172.18.0.2 6379 2
daemonize yes #后台运行
6)、redis-sentinel sentinel.conf #启动哨兵
7)、依次执行:redis-cli -p 26379;sentinel get-master-addr-by-name redis-master-sentinel #检测哨兵是否启动成功,成功应该返回哨兵检测的ip和port信息
3、【slave1容器配置哨兵】:
1)、docker exec -it redis-slave1 bash
2)、cd /
3)、apt-get update (更新依赖)
4)、apt-get install -y vim (安装vim)
5)、vim sentinel.conf (建立sentinel(哨兵模式)的配置文件,保存退出,内容如下:)
port 26379 (指定哨兵监听端口)
dir "/data" #sentinel工作目录
logfile "sentinel.log" #日志文件
sentinel monitor redis-slave1-sentinel 172.18.0.2 6379 2
daemonize yes #后台运行
6)、redis-sentinel sentinel.conf #启动哨兵
7)、依次执行:redis-cli -p 26379;sentinel get-master-addr-by-name redis-slave1-sentinel #检测哨兵是否启动成功,成功应该返回哨兵检测的ip和port信息
4、【slave2容器配置哨兵】:
1)、docker exec -it redis-slave2 bash
2)、cd /
3)、apt-get update (更新依赖)
4)、apt-get install -y vim (安装vim)
5)、vim sentinel.conf (建立sentinel(哨兵模式)的配置文件,保存退出,内容如下:)
port 26379 (指定哨兵监听端口)
dir "/data" #sentinel工作目录
logfile "sentinel.log" #日志文件
sentinel monitor redis-slave2-sentinel 172.18.0.2 6379 2
daemonize yes #后台运行
6)、redis-sentinel sentinel.conf #启动哨兵
7)、依次执行:redis-cli -p 26379;sentinel get-master-addr-by-name redis-slave2-sentinel #检测哨兵是否启动成功,成功应该返回哨兵检测的ip和port信息
5、检测哨兵是否自动选举
1)、docker exec -it redis-slave1 bash
2)、tail -f /data/sentinel.log
3)、新开一个shell控制台窗口,执行docker stop redis-master
4)、等待30s(默认)后,看看前一个控制台有咩有打印出:
+sdown master redis-slave2-sentinel 172.18.0.2 6379
就是将slave2选举为主节点了(这个好像不对,待我研究研究)
5)、恢复redis-master,执行docker start redis-master,再查看前一个控制台:
+sdown master redis-slave2-sentinel 172.18.0.2 6379
+reboot master redis-slave2-sentinel 172.18.0.2 6379
-sdown master redis-slave2-sentinel 172.18.0.2 6379
+sdown master redis-slave2-sentinel 172.18.0.2 6379
+reboot master redis-slave2-sentinel 172.18.0.2 6379
-sdown master redis-slave2-sentinel 172.18.0.2 6379
我感觉上面太麻烦了,觉得下面更舒服:
1、直接搭建redis主从的时候绑定目录
master绑定:/home/redis/master:/etc/redis,slave1绑定:/home/redis/slave1:/etc/redis,slave2绑定:/home/redis/slave2:/etc/redis
2、将redis.conf和sentenel.conf都复制到这个目录下
3、依次运行redis-master、redis-slave1,redis-slave2,然后进入各自容器内执行redis-sentinel /etc/redis/sentinel.conf
或者说直接修改docker-compose.yml文件中command: ['redis-server /etc/redis/redis.conf;','redis-sentinel /etc/redis/sentinel.conf'] #容器启动后,运行的命令
tips: 这种方法启动的话只会启动三个容器,也就是说每个容器里面有个redis服务,还有个sentinel服务。如果某个redis服务挂了,那其sentinel估计也挂了。下面的docker-compose启动的是六个容器,每个sentinel也是单独的容器。
六、docker-compose安装redis实现哨兵
1、先通过三或四实现redis主从设置;
2、在/home/redis/master、/home/redis/slave1、/home/redis/slave2下面分别配置三个配置文件sentinel.conf
[master下]:
# 哨兵sentinel实例运行的端口 默认26379
port 26379
daemonize no
pidfile /var/run/redis-master-sentinel.pid
dir /data
sentinel monitor redis-master-sentinel 172.18.0.2 6379 2
#sentinel auth-pass redis-master-sentinel 123456
# 指定多少毫秒之后 主节点没有应答哨兵sentinel 此时 哨兵主观上认为主节点下线 默认30秒
sentinel down-after-milliseconds redis-master-sentinel 30000
# 指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行同步,这个数字越小,完成failover所需的时间就越长
sentinel parallel-syncs redis-master-sentinel 1
# 故障转移的超时时间
sentinel failover-timeout redis-master-sentinel 180000
sentinel deny-scripts-reconfig yes
[slave1下]:
port 26379
daemonize no
pidfile /var/run/redis-slave1-sentinel2.pid
dir /data
sentinel monitor redis-master-sentinel 172.18.0.2 6379 2
#sentinel auth-pass redis-master-sentinel 123456
sentinel down-after-milliseconds redis-master-sentinel 30000
sentinel parallel-syncs redis-master-sentinel 1
sentinel failover-timeout redis-master-sentinel 180000
sentinel deny-scripts-reconfig yes
[slave2下]:
port 26379
daemonize no
pidfile /var/run/redis-slave2-sentinel.pid
dir /data
sentinel monitor redis-master-sentinel 172.18.0.2 6379 2
#sentinel auth-pass redis-master-sentinel 123456
sentinel down-after-milliseconds redis-master-sentinel 30000
sentinel parallel-syncs redis-master-sentinel 1
sentinel failover-timeout redis-master-sentinel 180000
sentinel deny-scripts-reconfig yes
3、创建docker-compose.yml文件,编辑文件内容保存如下:
version: '3'
services:
master-sentinel:
image: redis
restart: always
container_name: redis-master-sentinel
privileged: true
ports:
- 26379:26379
command: redis-sentinel /home/redis/master/sentinel.conf # 自定义路径,可更改但是必须和volumes中的路径一致
volumes:
- /home/redis/master/sentinel.conf:/etc/redis/sentinel.conf
slave1-sentinel:
image: redis
restart: always
container_name: redis-slave1-sentinel
privileged: true
ports:
- 26380:26379
command: redis-sentinel /home/redis/slave1/sentinel.conf
volumes:
- /home/redis/slave1/sentinel.conf:/etc/redis/sentinel.conf
slave2-sentinel:
image: redis
restart: always
container_name: redis-slave2-sentinel
privileged: true
ports:
- 26381:26379
command: redis-sentinel /home/redis/slave2/sentinel.conf
volumes:
- /home/redis/slave2/sentinel.conf:/etc/redis/sentinel.conf
4、执行命令:docker-compose -f docker-compose.yml up -d
5、执行docker ps 看看是否存在对应的哨兵容器
七、docker安装redis实现集群
1、先在/home/redis下面创建6个文件夹node1~node6,并且在每个文件夹下创建redis.conf,用下面简化版的redis配置文件就可;
2、执行ifconfig,查看docker0网卡的ip和掩码,我的是172.17.0.1/16,那我们创建的网卡就不能用这个网段了,最终我选择的网段是172.16.0.1/24,
执行命令:docker network create --subnet=172.19.0.1/24 redisNet
3、创建6个redis容器,为其分别指定网卡和ip,这样每次启动他们的ip就不会由网卡自行分配了
docker run --net redisNet --ip 172.16.0.2 -p 6379:6379 --name redis-node1 --privileged=true -v /home/redis/node1/redis.conf:/etc/redis/redis.conf -v /home/redis/node1/data:/data -d redis:latest redis-server /etc/redis/redis.conf
docker run --net redisNet --ip 172.16.0.3 -p 6380:6380 --name redis-node2 --privileged=true -v /home/redis/node2/redis.conf:/etc/redis/redis.conf -v /home/redis/node2/data:/data -d redis:latest redis-server /etc/redis/redis.conf
docker run --net redisNet --ip 172.16.0.4 -p 6381:6381 --name redis-node3 --privileged=true -v /home/redis/node3/redis.conf:/etc/redis/redis.conf -v /home/redis/node3/data:/data -d redis:latest redis-server /etc/redis/redis.conf
docker run --net redisNet --ip 172.16.0.5 -p 6382:6382 --name redis-node4 --privileged=true -v /home/redis/node4/redis.conf:/etc/redis/redis.conf -v /home/redis/node4/data:/data -d redis:latest redis-server /etc/redis/redis.conf
docker run --net redisNet --ip 172.16.0.6 -p 6383:6383 --name redis-node5 --privileged=true -v /home/redis/node5/redis.conf:/etc/redis/redis.conf -v /home/redis/node5/data:/data -d redis:latest redis-server /etc/redis/redis.conf
docker run --net redisNet --ip 172.16.0.7 -p 6384:6384 --name redis-node6 --privileged=true -v /home/redis/node6/redis.conf:/etc/redis/redis.conf -v /home/redis/node6/data:/data -d redis:latest redis-server /etc/redis/redis.conf
执行:docker ps打印出如下信息:
e47b6633d3a4 redis:latest "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 0.0.0.0:6384->6384/tcp, :::6384->6379/tcp redis-node6
4e5d00041969 redis:latest "docker-entrypoint.s…" 4 seconds ago Up 3 seconds 0.0.0.0:6383->6383/tcp, :::6383->6379/tcp redis-node5
9b0dbe4210d1 redis:latest "docker-entrypoint.s…" 4 seconds ago Up 3 seconds 0.0.0.0:6382->6382/tcp, :::6382->6379/tcp redis-node4
e41009c34a85 redis:latest "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 0.0.0.0:6381->6381/tcp, :::6381->6379/tcp redis-node3
397db69d52ae redis:latest "docker-entrypoint.s…" 9 seconds ago Up 8 seconds 0.0.0.0:6380->6380/tcp, :::6380->6379/tcp redis-node2
dc50f410c54f redis:latest "docker-entrypoint.s…" 15 seconds ago Up 14 seconds 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis-node1
容器启动成功;
4、在你的各个文件夹下的redis.conf加上以下配置:
cluster-enabled yes
# 集群持久化配置文件,内容包含其它节点的状态,持久化变量等,会自动生成在上面配置的dir目录下
cluster-config-file cluster-node.conf
# 集群节点不可用的最大时间(毫秒),如果主节点在指定时间内不可达,那么会进行故障转移
cluster-node-timeout 5000
# 云服务器上部署需指定公网ip
#cluster-announce-ip xx.xx.xx.xx
# Redis总线端口,用于与其它节点通信
#cluster-announce-bus-port 16381
5、执行docker exec -it redis-node1 bash进入到redis-node1容器中,再执行redis-cli进入其客户端命令界面;
6、执行以下命令:
cluster meet 172.16.0.3 6380
cluster meet 172.16.0.4 6381
cluster meet 172.16.0.5 6382
cluster meet 172.16.0.6 6383
cluster meet 172.16.0.7 6384
每次都会与指定的ip,port握手,将其拉入集群中并且通知其他节点由来了个集群节点,如若想清空集群节点,执行:CLUSTER RESET HARD
7、执行cluster nodes打印出以下信息,则说明节点集群关联好了
e752ab06d9ff46db1fb659b4163b8ddcdfa8882a 172.16.0.6:6383@16379 master - 0 1705303802316 4 connected
eb424b68164919717f8ce48400ada850b41903e4 172.16.0.5:6382@16379 master - 0 1705303803000 0 connected
a6b0ee3b4c169753594c491dfd2d2a8130cd31f4 172.16.0.4:6381@16379 master - 0 1705303803319 3 connected
27aed20ba424149257af6ecb3d04df67673a065d 172.16.0.7:6384@16379 master - 0 1705303803520 5 connected
3994243a99f7badef903a1674f68fc8cb9627a68 172.16.0.2:6379@16379 myself,master - 0 1705303802000 2 connected
1b3b6f287ff0cdce1aa94f935a649f34d27e5c5b 172.16.0.3:6380@16379 master - 0 1705303803018 1 connected
但是此时暴露的ip是内网网卡的ip,我们正常访问集群的时候不可能把内网ip填到项目中的,而且一旦我们访问的数据是不在node1的分片中,
他给我们的回参也是该数据所在分片的内网ip,我们想要的是公网ip
8、将各个配置文件中的cluster-announce-ip 1.92.77.xxx 放开并替换为自己的ip,将cluster-announce-bus-port 16381放开,
记得云服务器安全组放开16381,6379-6384端口
9、执行命令:docker restart $(docker ps -a --format '{{.Names}}' | grep "^redis.node"),打印出以下信息:
23a966fbce14552ae35a603812ed5a1b91bda974 1.92.77.xxx:6381@16381 master - 1705306608540 1705306606000 2 disconnected
b2210027aeced0c861e853b1a1c9d1c62539fe9a 1.92.77.xxx:6383@16381 master - 1705306606828 1705306605919 0 disconnected
42537e1976796fd606afd8c8a4279bf1cbde436a 1.92.77.xxx:6380@16381 master - 1705306608540 1705306606000 1 disconnected
60599dbe62911ac65e0a8d6ddaf1b04d4b9d5746 1.92.77.xxx:6382@16381 master - 1705306607835 1705306605919 3 disconnected
131119a2b5a70289beb553ed8b23d9542bec8d13 1.92.77.xxx:6384@16381 master - 1705306605919 1705306605919 5 disconnected
709af7ce598cf174815ad9987a225d70adf9c99f 1.92.77.xxx:6379@16381 myself,master - 0 1705306616000 4 connected
发现节点都变成公网IP啦!!!
10、
八、docker-compose通过centos安装redis实现集群
https://blog.csdn.net/weixin_36380516/article/details/104935884?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170513485916800185834642%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=170513485916800185834642&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduend~default-1-104935884-null-null.nonecase&utm_term=docker%20%E6%90%AD%E5%BB%BAredis%E9%9B%86%E7%BE%A4&spm=1018.2226.3001.4450
redis配置去除注释版
bind 0.0.0.0
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
loglevel notice
logfile ""
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump6380.rdb
dir ./
#replicaof 172.17.0.2 6379
#masterauth <master-password>
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes