您的当前位置:首页正文

docker 安装 Redis 并配置持久化

2024-11-07 来源:个人技术集锦

docker 安装 Redis

Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 的 NoSQL 数据库,并提供多种语言的 API。

1、查看可用的 Redis 版本

可以用 docker search redis 命令来查看可用版本:

$ docker search  redis
NAME                      DESCRIPTION                   STARS  OFFICIAL  AUTOMATED
redis                     Redis is an open source ...   2321   [OK]       
sameersbn/redis                                         32                   [OK]
torusware/speedus-redis   Always updated official ...   29             [OK]
bitnami/redis             Bitnami Redis Docker Image    22                   [OK]
anapsix/redis             11MB Redis server image ...   6                    [OK]
webhippie/redis           Docker images for redis       4                    [OK]
clue/redis-benchmark      A minimal docker image t...   3                    [OK]
williamyeh/redis          Redis image for Docker        3                    [OK]
unblibraries/redis        Leverages phusion/baseim...   2                    [OK]
greytip/redis             redis 3.0.3                   1                    [OK]
servivum/redis            Redis Docker Image            1                    [OK]
...

2、取最新版的 Redis 镜像

这里我们拉取官方的最新版本的镜像:

$ docker pull redis:latest

3、查看本地镜像

使用以下命令来查看是否已安装了 redis:

$ docker images

在上图中可以看到我们已经安装了最新版本(latest)的 redis 镜像。

4、运行容器

安装完成后,我们可以使用以下命令来运行 redis 容器:

mkdir -p /mydata/redis/conf

touch /mydata/redis/conf/redis.conf

mkdir -p /mydata/redis/data

其次启动:

docker run --privileged=true -p 6379:6379 -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf --name redis \
--restart=always -d redis redis-server /etc/redis/redis.conf --appendonly yes

5、安装成功

最后我们可以通过 docker ps -a 命令查看容器的运行信息:

接着我们通过 redis-cli 连接测试使用 redis 服务。

$ docker exec -it redis /bin/bash

6、启动成功后设置密码

#1、进入redis容器内部
docker exec -it redis bash
#2、进入redis交互
redis-cli
#3、修改密码
config set requirepass 'password'
4、退出redis交互
连续执行两次exit即可

备注:
好多人说在docker 启动 redis 的时候可以直接设置 密码:
docker run -d --name redis_1 -p 6379:6379 容器ID --requirepass ‘password’
但是我执行这个语句并没有能启动起来redis

二、docker搭建redis集群

        mkdir -p /mydata/redis/cluster/node1/data   #集群一
        mkdir -p /mydata/redis/cluster/node2/data   #集群二
        mkdir -p /mydata/redis/cluster/node3/data   #集群三

  

    2、创建集群

创建集群一

docker create --name redis-node1 -v /mydata/redis/cluster/node1/data:/data  \
-p 6380:6379 redis --cluster-enabled yes    \
--cluster-config-file redis-node1.conf

启动集群一

docker start redis-node1

    1

创建集群二

docker create --name redis-node2 -v /mydata/redis/cluster/node2/data:/data  \
-p 6381:6379 redis --cluster-enabled yes    \
--cluster-config-file redis-node2.conf

启动集群二

docker start redis-node2

创建集群三

docker create --name redis-node3 -v /mydata/redis/cluster/node3/data:/data  \
-p 6382:6379 redis --cluster-enabled yes    \
--cluster-config-file redis-node3.conf

启动集群三

docker start redis-node3

    3、查看集群信息

查看启动后的三个集群容器
在这里插入图片描述

注意三个集群的IP和端口信息
1、IP信息

三个Redis集群在Docker容器中被重新分配了IP信息

docker inspect redis-node1

redis-node1:  172.17.0.6

    1

docker inspect redis-node2

redis-node2:  172.17.0.7

docker inspect redis-node3

redis-node3:  172.17.0.8

2、 端口信息
在做端口映射时,我们已经指明了端口情况
redis-node1对外的端口是6380,但是在自己docker分配IP下的端口还是6379
redis-node2对外的端口是6381,但是在自己docker分配IP下的端口还是6379
redis-node3对外的端口是6382,但是在自己docker分配IP下的端口还是6379

    4、集群搭建

执行组建集群命令(请根据自己的ip信息进行拼接)

redis-cli --cluster create 172.17.0.6:6379  172.17.0.7:6379  172.17.0.8:6379 --cluster-replicas 0

    5、测试集群

启动redis,一定要以redis-cli -c命令启动,-c代表启动集群的意思

在集群一中set name zhangsan
在集群二和集群三中get name
 

Top