Docker快速部署方案 ---- Redis6

Docker快速部署方案 ---- Redis6

Docker快速部署方案 ---- Redis6,Docker 启动 Redis6.2

学前先知

  • redis-cli --raw,可以在shell中进行查询(如get)操作时正常显示中文;
  • client list,(redis-cli认证后)查看所有已连接客户端信息;
  • redis事务中WATCH关键字必须在MULTI前使用,且监听字段必须在另一个客户端被修改事务才会无法执行,当前客户端中(MULTIEXEC之间)则不会;

1. 拉取镜像

docker pull redis:6.2.11

2. 创建挂载目录

mkdir -p /opt/docker/redis/{conf,data}

3. 创建配置redis.conf

vim /opt/docker/redis/conf/redis.conf

# 源文件可以从官网获得,修改启动默认配置(从上至下依次):
bind 127.0.0.1    #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no      #默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
databases 16      #数据库个数(可选),我修改了这个只是查看是否生效。。
dir  ./           #输入本地redis数据库存放文件夹(可选)
appendonly yes    #redis持久化(可选)

4. 启动容器

docker run --name redis6 \
--privileged=true \
-p 6379:6379 \
-v /opt/docker/redis/conf/redis.conf:/redis.conf \
-v /opt/docker/redis/data:/data \
-d redis:6.2.11 \
redis-server /redis.conf \
--appendonly yes \
--requirepass "123456"

参数解释

--privileged=true             -> 使container内的root拥有真正的root权限。否则只是外部的一个普通用户权限
-d                            -> 后台运行
-p                            -> 端口映射到主机的端口
-v                            -> 将主机目录挂载到容器的目录
redis-server /redis.conf      -> 在容器执行以redis.conf启动redis-server
--appendonly yes              -> 打开redis持久化配置
–-requirepass "123456"        -> 设置密码

5. 连接客户端

  • 天坑!客户端报错——Failed to authenticate, please check the username or password.

  • 错误原因——Redis在某个版本(我不清楚)更新了一个东西:当设置密码后,用户名不再是root,会有一个默认的用户名:default

  • 解决办法——使用 default 作为客户端登录用户名,输入正确密码即可成功解决问题。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个基于docker-compose编排的Redis集群部署方案,包括3个主节点和3个从节点。以下是示例代码: ``` version: '3' services: redis-1: image: redis:latest command: redis-server --port 6379 --cluster-enabled yes --cluster-config-file /data/nodes.conf --cluster-node-timeout 5000 --appendonly yes ports: - "6379:6379" volumes: - redis-data-1:/data networks: - redis-cluster redis-2: image: redis:latest command: redis-server --port 6380 --cluster-enabled yes --cluster-config-file /data/nodes.conf --cluster-node-timeout 5000 --appendonly yes ports: - "6380:6380" volumes: - redis-data-2:/data networks: - redis-cluster redis-3: image: redis:latest command: redis-server --port 6381 --cluster-enabled yes --cluster-config-file /data/nodes.conf --cluster-node-timeout 5000 --appendonly yes ports: - "6381:6381" volumes: - redis-data-3:/data networks: - redis-cluster redis-4: image: redis:latest command: redis-server --port 6382 --cluster-enabled yes --cluster-config-file /data/nodes.conf --cluster-node-timeout 5000 --appendonly yes ports: - "6382:6382" volumes: - redis-data-4:/data networks: - redis-cluster redis-5: image: redis:latest command: redis-server --port 6383 --cluster-enabled yes --cluster-config-file /data/nodes.conf --cluster-node-timeout 5000 --appendonly yes ports: - "6383:6383" volumes: - redis-data-5:/data networks: - redis-cluster redis-6: image: redis:latest command: redis-server --port 6384 --cluster-enabled yes --cluster-config-file /data/nodes.conf --cluster-node-timeout 5000 --appendonly yes ports: - "6384:6384" volumes: - redis-data-6:/data networks: - redis-cluster volumes: redis-data-1: redis-data-2: redis-data-3: redis-data-4: redis-data-5: redis-data-6: networks: redis-cluster: ``` 这个docker-compose文件会启动6个Redis容器,其中3个是主节点,3个是从节点,它们都运行在同一个网络下(`redis-cluster`)。每个容器都映射了一个端口,你可以通过这些端口直接访问Redis实例。 要启动集群,你需要在其中一个Redis容器中执行以下命令: ``` redis-cli --cluster create ``` 然后按照提示输入所有Redis实例的IP和端口,直到集群创建完成。注意,这个过程只需要在一个容器中执行一次即可。 希望这个部署方案对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值