docker安装redis大全

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放开,
记得云服务器安全组放开163816379-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

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

练习两年半的攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值