【Redis】-1.基于docker的两种方式环境搭建

redis环境搭建

1.docker方式

1.进入官网 使用文档

image-20220723213812752

2.进入docker仓库,选择相关版本查看

image-20220723220313084

目前 Docker 官方已开始推荐使用 Alpine 替代之前的 Ubuntu 做为基础镜像环境。这样会带来多个好处。包括镜像下载速度加快,镜像安全性提高,主机之间的切换更方便,占用更少磁盘空间等。

3.下载镜像

docker pull redis:6.0

4.启动实例

docker run -d --name redis -p 6379:6379 redis:6.0 redis-server --appendonly yes --requirepass "123456"

说明:

run -d:后台运行

--name:服务名

-p:对外暴露端口

redis-server --appendonly yes:在容器执行redis-server启动命令,并打开redis持久化配置 默认是no

--requirepass:给redis服务设置密码

以上这些参数,都是可以参考==redis.conf==进行配置

5.命令启动链接

docker exec -it b5de014913e8 redis-cli

image-20220723221505723

或者执行下面的命令也可

docker exec -it b5de014913e8 /bin/bash
redis-cli

image-20220723222107631

6.使用工具查看

image-20220723222342063

image-20220723222411292

2.docker-compose方式

2.1 单个服务启动

1.进入某个目录,比如redis目录,创建yaml文件,如下

version: '3.3'

services:
  redis:
    image: redis:6.0
    container_name: redis
    restart: always
    command: redis-server --requirepass 123456 --appendonly yes 
    ports:
      - 6379:6379
    environment: 
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8

注意:

1.redis的默认映像没有redis.conf,您将必须将其复制到映像或使用卷映射将其映射到主机上。若没有上传并做映射,那么command里也就不用加类似 redis-server /etc/redis.conf这种命令了

2.设置环境变量,相当于docker run命令中的-e*,*设置时区为上海,否则时间会有问题

image-20220724001231305

2.启动工具查看

image-20220724000852571

2.2 集群服务启动

1.进入某个目录,比如redis目录,创建yaml文件,如下

version: '3.3'

services:
  redis01:
    image: redis:6.0
    container_name: redis01
    restart: always
    network_mode: host
    command: redis-server --port 6391 --appendonly yes --cluster-enabled yes
    ports:
      - 6391:6391
      - 16391:16391
    environment: 
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
  redis02:
    image: redis:6.0
    container_name: redis02
    restart: always
    network_mode: host
    command: redis-server --port 6392 --appendonly yes --cluster-enabled yes
    ports:
      - 6392:6392
      - 16392:16392
    environment: 
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
  redis03:
    image: redis:6.0
    container_name: redis03
    restart: always
    network_mode: host
    command: redis-server --port 6393 --appendonly yes --cluster-enabled yes
    ports:
      - 6393:6393
      - 16393:16393
    environment: 
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
  redis04:
    image: redis:6.0
    container_name: redis04
    restart: always
    network_mode: host
    command: redis-server --port 6394 --appendonly yes --cluster-enabled yes
    ports:
      - 6394:6394
      - 16394:16394
    environment: 
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
  redis05:
    image: redis:6.0
    container_name: redis05
    restart: always
    network_mode: host
    command: redis-server --port 6395 --appendonly yes --cluster-enabled yes
    ports:
      - 6395:6395
      - 16395:16395
    environment: 
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
  redis06:
    image: redis:6.0
    container_name: redis06
    restart: always
    network_mode: host
    command: redis-server --port 6396 --appendonly yes --cluster-enabled yes
    ports:
      - 6396:6396
      - 16396:16396
    environment: 
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
  redisinsight:
    image: redislabs/redisinsight:latest
    container_name: redisinsight
    restart: always
    network_mode: host
    ports:
      - 8001:8001
    volumes:
      - /mySoft/myApp/redisinsight:/db


注意:

1.必须要6个节点,不然会报错,如下:

image-20220724003822066

2.--cluster-enabled yes:开启集群节点,不然会报not configured as a cluster node

3.Redis版本需要指定为redis 6 版本,端口需要映射出来两个,一个是服务端口,另一个是集群总线端口,默认为服务端口 + 10000 例如:redis端口为6379,则集群总线端口为16379

4.按照 Redis 官网:redis.io/topics/clus… 的提示,为了使 Docker 与 Redis Cluster 兼容,您需要使用 Docker 的 host 网络模式。

2.启动容器

docker-compose -f docker-compose.yaml up -d

3.随便进入一个节点,然后执行如下命令

#比如进入第一个节点
docker exec -it redis01 /bin/bash

#执行如下命令,创建cluster集群
redis-cli --cluster create 192.168.44.135:6391 192.168.44.135:6392 192.168.44.135:6393 192.168.44.135:6394 192.168.44.135:6395 192.168.44.135:6396 --cluster-replicas 1

#看到Can I set the above configuration? (type 'yes' to accept): yes (填写yes)

image-20220724004505326

4.随便进入一个容器,输入下面命令,也可以查看主从信息

redis-cli -p 6395 cluster nodes | grep master

image-20220724005127592

至此一个高可用的 Redis Cluster 集群搭建完成,如下图所示,该集群中包含 6 个 Redis 节点,3 主 3 从。三个主节点会分配槽,处理客户端的命令请求,而从节点可用在主节点故障后,顶替主节点。

image-20220724010007999

5.利用工具查看如下:

image-20220724005221314

image-20220724010515905

注意:redis在单机模式下redis.conf配置文件中默认的数据库数量是16个,在集群模式下这个配置是不起作用的,集群客户端是不支持多数据库db的,只有一个数据库默认是SELECT 0;

3.RedisInsight(Linux) 安装

3.1 docker方式

1.创建一个指定目录,并授权

#比如  /mySoft/myApp/redisinsight ,进入/mySoft/myApp,执行如下命令

chmod 777 redisinsight

2.拉取镜像,然后执行启动

docker pull redislabs/redisinsight

docker run -d -v /mySoft/myApp/redisinsight:/db -p 8001:8001 redislabs/redisinsight:latest

注意:

1.若启动失败,可以通过 docker logs -f 2c2e91712cde43f4adb7c5ea467d9772be73ef8197b1398b91c89e3d0b9a8956 查看日志

3.访问http://192.168.44.135:8001/,勾选同意,进入工具页面

image-20220724101856428

image-20220724104619912

image-20220724104655386

image-20220724105016158

image-20220724103019161

3.2 docker compose方式

2.2.2 集群服务启动

参考

  1. 最详细的docker中安装并配置redis(图文详解)
  2. Docker-compose部署redis-cluster集群
  3. Docker-compose之Redis Cluster集群
  4. 【Docker】使用docker-compose安装redis
  5. docker-compose安装redis
  6. 运维(24) docker-compose部署redis一主二从三哨兵模式
  7. Docker Compose 搭建 Redis Cluster 集群环境
  8. redisInsight官网docker安装
  9. RedisInsight 安装 ------docker方式

猜你喜欢

转载自juejin.im/post/7123768323182952485