docker安装Redis

本文档详细介绍了如何在Ubuntu Focal 20.04上使用Docker安装Redis 6.2.6,包括设置容器、数据持久化、配置文件修改以及启动和测试Redis。还提到了数据持久化的AOF模式,以及如何通过docker-compose进行容器编排。此外,推荐了一个开源的Redis客户端工具AnotherRedisDesktopManager。
摘要由CSDN通过智能技术生成

Redis 是一个开源的、可基于内存也可持久化存储的 Key-Value 存储 NoSQL 数据库。使用 ANSI C 语言编写。并提供多种语言的API。

安装 Redis

本文环境:

  • Linux 发行版:Ubuntu Focal 20.04 (LTS)
  • Docker version 20.10.11
  • docker-compose version 1.29.2

Redis 官方 image 仓库地址:https://hub.docker.com/_/redis

拉取镜像:

docker pull redis:6.2.6

redis:6.2.6 image 基于 debian:bullseye-slim,压缩后大小 39.81 Mb,Dockerfile 链接地址:
redis/Dockerfile · docker-library/redis (github.com)

注:数据默认只写入内存,如需数据持久化可直接跳到“数据持久化”部分。

启动 redis 容器:

docker run --name redis626 \
-p 6379:6379 \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
-d redis:6.2.6
  • --name,容器的名称,自定义。
  • -p,映射容器端口到宿主机端口。
  • -v,挂载宿主机目录到容器内,如宿主机目录不存在则创建。
    • /etc/localtime,让容器的时钟与宿主机同步,避免时区的问题,ro 是 read only 的意思,默认是 rw 读写模式。
  • -d,容器以守护进程方式运行。

查看容器状态:

docker ps -a

退出并删除容器:

docker stop redis626
docker rm redis626

数据持久化

参考:REDIS persistence – Redis中国用户组(CRUG)

设置数据持久化可以将数据写入硬盘,避免断电丢失。

下面将通过配置开启数据持久化的 AOF 模式,使用默认的每秒同步策略。

准备配置文件:

# 创建redis的数据存储和配置文件目录
mkdir -p redis626/{data,conf}
cd redis626
# 从官网下载配置文件到config目录
wget http://download.redis.io/redis-stable/redis.conf -P ./conf/

修改配置文件:

$ vim ./conf/redis.conf
# bind 127.0.0.1   # 注释掉,使redis可以远程访问
protected-mode no  # 改为no,使redis可以远程访问,默认yes
requirepass 123456 # 设置你访问redis的密码
databases 16       # 数据库个数(可选),默认16
appendonly yes     # 改为yes,数据持久化,AOF模式,默认是no

redis 配置参考:REDIS config – Redis中文资料站 – Redis中国用户组(CRUG)

启动 redis 容器并读取配置:

docker run --name redis626 \
-p 6379:6379 \
-v ${PWD}/conf/redis.conf:/etc/redis/redis.conf \
-v ${PWD}/data:/data \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
-d redis:6.2.6 redis-server /etc/redis/redis.conf
  • -v ${PWD}/conf/redis.conf,挂载当前目录下的配置文件到容器中。
  • -v ${PWD}/data,挂载数据目录到容器中。

查看启动日志:

docker logs redis626

小提示:生产环境推荐使用 Master-slave 主从同步,并在 master 禁用数据持久化,在 slave 上配置数据持久化。

测试 Redis

# redis626是前面定义的容器名,redic-cli是客户端连接工具
$ docker exec -it redis626 redis-cli

# 使用设置的密码验证身份
127.0.0.1:6379> auth 123456
# 写入数据
127.0.0.1:6379> set name 123
OK
127.0.0.1:6379> get name
"123"
127.0.0.1:6379> exit

如果开启了 AOF,会在 data 目录下看到一个数据文件 appendonly.aof。

容器编排

创建 docker-compose.yml

version: "3.1"
services:
 redis:
    image: redis:6.2.6
    container_name: redis626
    restart: always
    volumes:
      - "${PWD}/conf/redis.conf:/etc/redis/redis.conf"
      - "${PWD}/data:/data"
      - "/etc/timezone:/etc/timezone:ro"
      - "/etc/localtime:/etc/localtime:ro"
    ports:
      - "6379:6379"
    command: redis-server /etc/redis/redis.conf

检查模板文件:

docker-compose config

启动容器:

docker-compose up -d
  • -d:后台启动。

查看状态:

$ docker-compose ps  
  Name                Command               State           Ports
--------------------------------------------------------------------------
redis626   docker-entrypoint.sh redis ...   Up      0.0.0.0:6379->6379/tcp

关闭容器:

docker-compose down

客户端工具

AnotherRedisDesktopManage

扩展阅读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值