docker安装单机版redis、集群版redis

一、redis单机版安装

1、创建文件夹指定配置文件路径

mkdir -p /usr/local/docker/redis/data
vim /usr/local/docker/redis/redis.conf 

2、编辑redis.conf文件

1、以下只列出7.0.5版本的配置,注释全部删掉,检出配置项
2、其他版本的配置可以查看官方reds版本对应的redis.conf(下载后,找到redis.conf)

bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo no
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync yes
repl-diskless-sync-delay 5
#设置密码
requirepass 123456
repl-diskless-sync-max-replicas 0
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no
oom-score-adj no
oom-score-adj-values 0 200 800
disable-thp yes
#数据持久化
appendonly yes
appendfilename "appendonly.aof"
appenddirname "appendonlydir"
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
aof-timestamp-enabled no
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-listpack-entries 512
hash-max-listpack-value 64
list-max-listpack-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-listpack-entries 128
zset-max-listpack-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
jemalloc-bg-thread yes

3、拉取redis镜像

docker pull redis:7.0.5

4、启动redis容器

 docker run -d -p 6379:6379 \
-v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf  \
-v /usr/local/docker/redis/data:/data \
--privileged=true \
--name redis redis:7.0.5 redis-server /etc/redis/redis.conf

开启端口访问

firewall-cmd --zone=public --add-port=6379/tcp --permanent && firewall-cmd --reload

5、注意事项、某些配置不正确,影响访问链接

1、开启远程访问bind

# 设置此配置为0.0.0.0
bind 0.0.0.0
#这个参数默认值是127.0.0.1,也就是只允许redis所在机器访问redis。
#如果我们的应用服务和redis服务不在一个机器我们就需要修改这个参数为0.0.0.0,这表示允许所有人都可以访问这个redis

requirepass 123456
#这个参数是用来设置redis密码的,默认情况下时被注释掉的,即没有密码。
#如果需要设置密码那就取消注释,注意删除#和requirepass之间的空格

#配置数据持久化
appendonly yes

#设置保护模式
protected-mode no
#这个参数的默认值是yes,也就是默认开启保护模式,当开启了此模式,限制为本地访问。
#如果设置为no,就关闭了保护模式,允许所有外部的网络直接访问redis服务。

二、集群redis的搭建

命令说明
docker run创建并运行docker容器实例
–name redis-node-6 redis容器名字
–net host使用宿主机的ip和端口,默认
–privileged=true获取宿主机root用户权限
-v /usr/local/docker/redis/share/redis-node-6:/data容器卷,宿主机地址:容器内部地址
redis:xxxredis镜像和版本号
–cluster-enabled yes开启redis集群
–appendonly yes开启持久化
–port 6386redis端口号

1、启动容器(三主三从)

docker run -d --name redis-node-1 --net host --privileged=true -v /usr/local/docker/redis/share/redis-node-1:/data redis --cluster-enabled yes --appendonly yes --port 6381

docker run -d --name redis-node-2 --net host --privileged=true -v /usr/local/docker/redis/share/redis-node-2:/data redis --cluster-enabled yes --appendonly yes --port 6382

docker run -d --name redis-node-3 --net host --privileged=true -v /usr/local/docker/redis/share/redis-node-3:/data redis --cluster-enabled yes --appendonly yes --port 6383

docker run -d --name redis-node-4 --net host --privileged=true -v /usr/local/docker/redis/share/redis-node-4:/data redis --cluster-enabled yes --appendonly yes --port 6384

docker run -d --name redis-node-5 --net host --privileged=true -v /usr/local/docker/redis/share/redis-node-5:/data redis --cluster-enabled yes --appendonly yes --port 6385

docker run -d --name redis-node-6 --net host --privileged=true -v /usr/local/docker/redis/share/redis-node-6:/data redis --cluster-enabled yes --appendonly yes --port 6386

2、构建主从关系

# 进入redis-node-1构建
docker exec -it redis-node-1 bash
# 注意,进入docker容器后才能执行一下命令,且注意自己的真实IP地址
redis-cli --cluster create 192.168.11.133:6381 192.168.11.133:6382 192.168.11.133:6383 192.168.11.133:6384 192.168.11.133:6385 192.168.11.133:6386 --cluster-replicas 1
# 切记里面设置配置的时候是yes不是y
  • 以6381为切入点,查看集群状态
#进入界面redis内部查看信息
redis-cli -p 6381
cluster info
cluster nodes
127.0.0.1:6381> cluster nodes
3c6a4b9d6bd658adc057833a9917b153c12843af 192.168.11.133:6384@16384 slave 81adde9dae53d8c0bf2464f5835f4ba2364f0d30 0 1655264316000 2 connected
81adde9dae53d8c0bf2464f5835f4ba2364f0d30 192.168.11.133:6382@16382 master - 0 1655264318198 2 connected 5461-10922
78c999fc70290fcbb1a8e73ed8b3bb9bc5222036 192.168.11.133:6383@16383 master - 0 1655264317187 3 connected 10923-16383
b0f9fa3ea5b038b796c10c0e30ec109a94711a71 192.168.11.133:6385@16385 slave 78c999fc70290fcbb1a8e73ed8b3bb9bc5222036 0 1655264315171 3 connected
7b08ed9f3866a631d3f48c5c1e024651df0c1520 192.168.11.133:6386@16386 slave 9edd9ee67e62e26deae7fcfb2d385c4d66ff2719 0 1655264317000 1 connected
9edd9ee67e62e26deae7fcfb2d385c4d66ff2719 192.168.11.133:6381@16381 myself,master - 0 1655264316000 1 connected 0-5460

请看以上的6382、6383、6381都是master。然后6384、6385、6386都是slave,是内部随机分配的一主一从。

看服务尾号id:  
2719的master下面绑定的是1520的从服务  
2036的master下面绑定的是1a71的从服务  
0d30的master下面绑定的是43af的从服务

3、整个操作图示:

在这里插入图片描述
在这里插入图片描述

  • 至此,redis集群搭建完毕
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值