Docker容器化部署Redis

1、部署方法

1.1 标题创建数据和配置存放目录

# 创建 redis 配置存放目录
mkdir -p /home/docker/redis/myredis/conf && chmod 777 /home/docker/redis/myredis/conf
# 创建 redis 数据存放目录
mkdir -p /home/docker/redis/myredis/data && chmod 777 /home/docker/redis/myredis/data

1.2 下载并编辑配置文件

# 进入 redis 配置文件目录
cd /home/docker/redis/myredis/conf

# 下载 redis 示例配置文件
wget http://download.redis.io/redis-stable/redis.conf

编辑配置文件,搜索这些配置项并更改,有些默认值本来就是这些就不用改

# 设置 redis 连接密码
requirepass 123456789

# 数据持久化 - 开始
# 开启 AOF 持久化
appendonly yes

# AOF文件刷新的方式
# always 每提交一个修改命令都调用fsync刷新到AOF文件,非常非常慢,但也非常安全。
# everysec 每秒钟都调用fsync刷新到AOF文件,很快,但可能会丢失一秒以内的数据。
# no 依靠OS进行刷新,redis不主动刷新AOF,这样最快,但安全性就差。
appendfsync everysec

# 随着持久化的不断增多,AOF文件会越来越大,这个时候就需要AOF文件重写了。AOF文件重写
# 如果该参数取值为yes,那么在重写AOF文件时能提升性能,但可能在重写AOF文件时丢失数据。
# 如果取值为no,则不会丢失数据,但较取值为yes的性能可能会降低。默认取值是no。
no-appendfsync-on-rewrite no

# AOF文件重写
# 参数能指定重写的条件,默认是100,
# 即如果当前的AOF文件比上次执行重写时的文件大一倍时会再次触发重写操作。
# 如果该参数取值为0,则不会触发重写操作。
auto-aof-rewrite-percentage 100

# AOF文件重写
# 指定触发重写时AOF文件的大小,默认是64MB。
auto-aof-rewrite-min-size 64mb

# auto-aof-rewrite-percentage 和 auto-aof-rewrite-min-size 两个参数指定的重写条件是“And”的关系。
# 即只有当同时满足这两个条件时才会触发重写操作。

# 允许外部ip连接
bind * -::*

# 关闭保护模式,即允许外部网络直接访问
protected-mode no

# Redis key 过期事件监听
notify-keyspace-events Ex

1.3 启动容器

docker run -itd -p 6379:6379 --name redis --restart=always -v /home/docker/redis/myredis/data:/data -v /home/docker/redis/myredis/conf/redis.conf:/etc/redis/redis.conf -v /home/docker/redis/myredis/downloads:/usr/Downloads redis redis-server /etc/redis/redis.conf --appendonly yes

参数解析

【-itd】
 i:以交互模式运行容器,通常与 -t 同时使用;
 t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
 d:表示后台启动redis;
【-p 6379:6379】 将宿主机6379端口与容器内6379端口进行映射;
【–-name】 给容器命名;
【--restart=always】 开机启动,失败也会一直重启;
【-v】 将宿主机目录或文件与容器内目录或文件进行挂载映射;
【redis-server /etc/redis/redis.conf】 以配置文件启动redis,加载容器内的conf文件;
【-–appendonly yes】 开启redis 持久化;

1.4 连接Redis

# 在容器 redis 中开启一个交互模式的终端
docker exec -it redis /bin/bash
# 使用Redis官方工具连接
redis-cli
# 密码登录
auth 你设置的连接密码

也可使用桌面客户端工具Another Redis Desktop Manager
github下载:https://github.com/qishibo/AnotherRedisDesktopManager
新建连接,填写ip、端口、密码即可,使用方法详见官方文档

2、遇到的问题

2.1 启动容器后docker ps查看redis一直在重启

在这里插入图片描述

# 查看容器日志
docker logs redis

# 日志内容
*** FATAL CONFIG FILE ERROR (Redis 6.2.6) ***
Reading the configuration file, at line 416
>>> 'locale-collate ""'
Bad directive or wrong number of arguments

*** FATAL CONFIG FILE ERROR (Redis 6.2.6) ***
Reading the configuration file, at line 416
>>> 'locale-collate ""'
Bad directive or wrong number of arguments

*** FATAL CONFIG FILE ERROR (Redis 6.2.6) ***
Reading the configuration file, at line 416
>>> 'locale-collate ""'
Bad directive or wrong number of arguments

*** FATAL CONFIG FILE ERROR (Redis 6.2.6) ***
Reading the configuration file, at line 416
>>> 'locale-collate ""'
Bad directive or wrong number of arguments

报错信息提示是redis.conf配置文件有问题
redis.conf官方下载地址:https://redis.io/docs/management/config/
在这里插入图片描述
根据上面查看的报错信息,我的redis版本是6.2.6,点6.2那个,在新页面中复制所有内容,替换redis.conf中的内容,重启容器即可

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Docker-compose 是 Docker 官方提供的一个工具,用于定义和运行多个 Docker 容器的应用程序。使用 Docker-compose 部署 Redis,可以快速、方便地创建和管理 Redis 容器。 以下是使用 Docker-compose 部署 Redis 的步骤: 1. 安装 DockerDocker-compose。 2. 创建一个名为 docker-compose.yml 的文件,并在其中定义 Redis 容器的配置。例如: ``` version: '3' services: redis: image: redis:latest ports: - "6379:6379" ``` 3. 在终端中进入 docker-compose.yml 文件所在的目录,运行以下命令启动 Redis 容器: ``` docker-compose up -d ``` 4. 等待一段时间,直到 Redis 容器启动完成。可以使用以下命令查看容器状态: ``` docker-compose ps ``` 5. 使用 Redis 客户端连接 Redis 容器。例如: ``` redis-cli -h localhost -p 6379 ``` 6. 在 Redis 容器中执行 Redis 命令。例如: ``` set mykey "Hello World" get mykey ``` 以上就是使用 Docker-compose 部署 Redis 的基本步骤。需要注意的是,这只是一个简单的示例,实际应用中可能需要更复杂的配置。 ### 回答2: Docker-Compose是Docker官方提供的一个类似于编排工具的东西,通过yaml文件来管理多个容器的启动和连接,非常适合进行多容器的本地开发和测试。 Redis是一个非关系型数据库,被广泛用于缓存系统和分布式存储系统中。使用Docker-Compose可以快速部署Redis集群,以下是具体步骤: 1. 确认本地已经安装了DockerDocker-Compose。 2. 创建一个docker-compose.yaml文件,内容如下: version: '3' services: redis-master: image: 'redis:6.2.5-alpine' container_name: 'redis-master' ports: - '6379:6379' redis-slave: image: 'redis:6.2.5-alpine' container_name: 'redis-slave' ports: - '6380:6379' command: redis-server --slaveof redis-master 6379 在这个文件中,我们有两个服务:redis-master和redis-slave。redis-master将在启动时创建一个Redis实例,redis-slave将在启动时连接到redis-master,并成为redis-master的副本。 3. 打开命令行终端,导航到docker-compose.yaml所在的目录,并启动服务: $ docker-compose up 这将在终端中输出服务启动日志。 4. 验证Redis集群是否成功启动。我们可以使用Redis客户端来连接到Redis实例并执行一些基本命令: $ redis-cli -p 6379 127.0.0.1:6379> set mykey "Hello Redis" OK 127.0.0.1:6379> get mykey "Hello Redis" 127.0.0.1:6379> 在这个例子中,我们使用redis-cli连接到redis-master并将“Hello Redis”设置为名为“mykey”的值,然后再次连接到redis-master以确保该值已正确存储。 通过以上步骤,就可以使用Docker-Compose部署Redis集群,非常简单方便。同时,由于使用了Docker,可以实现快速的容器部署,大大提高了开发和部署的效率。 ### 回答3: Docker-Compose是一种方便的工具,可以使Docker容器部署更加容易。在这里,我们将介绍如何使用Docker-Compose部署RedisRedis是一个高性能的开源键值存储数据库,广泛用于缓存,队列和实时分析等方面。 首先,我们需要编写一个docker-compose.yaml文件来定义Redis容器的配置。我们需要定义一个Redis服务,指定容器的名称,所需的镜像,端口映射,以及其他必要的配置项。示例如下: ```yaml version: '3' services: redis: image: redis:latest container_name: myredis restart: always ports: - 6379:6379 ``` 在这个配置中,我们定义了一个名为redis的服务,基于redis:latest镜像启动。我们映射主机的6379端口到容器的6379端口,使得外部应用可以连接到Redis服务。另外,我们指定了容器的重启策略,当容器异常退出时,会自动重新启动。 接下来,使用docker-compose命令行工具来启动Redis容器: ```bash docker-compose up -d ``` 这个命令将会在后台启动Redis服务,并输出容器的运行日志。我们可以用docker-compose ps命令查看容器的状态: ```bash docker-compose ps ``` 如果一切正常,我们应该能看到容器正在运行中。然后,我们可以使用任何适当的Redis客户端连接到Redis服务: ```bash redis-cli 127.0.0.1:6379> ping PONG ``` 到此,我们已经成功地使用Docker-Compose部署Redis服务。使用Docker-Compose的优点包括:一键启动一个完整的Redis服务,可自定义容器配置和参数,方便协作和分享等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值