当前位置: 首页 > article >正文

【Docker】docker compose 安装 Redis Stack

注:整理不易,请不要吝啬你的赞和收藏。

前文

Redis Stack 什么是?

简单来说,Redis Stack 是增强版的 Redis ,它在传统的 Redis 数据库基础上增加了一些高级功能和模块,以支持更多的使用场景和需求。Redis Stack 包括以下几个主要组件:
  1. RedisJSON:用于在 Redis 中存储和操作 JSON 数据结构,支持复杂的 JSON 查询和更新操作。
  2. RediSearch:提供全文搜索和二次索引功能,使得在 Redis 中可以进行复杂的搜索查询。
  3. RedisGraph:一个图数据库模块,支持图数据结构的存储和查询,适用于社交网络、推荐系统等场景。
  4. RedisTimeSeries:专门用于时间序列数据的存储和分析,支持高效的时间序列数据写入和查询。
  5. RedisBloom:提供概率数据结构如布隆过滤器、HyperLogLog 等,用于高效地处理大规模数据集。
Redis Stack 通过这些模块的组合,使得开发者可以在一个统一的平台上处理多种类型的数据和查询需求,极大地扩展了 Redis 的应用场景。

镜像版本说明

官方提供了两种镜像版本,点击查看: redis-stack可用版本 和 redis-stack-server可用版本
  • redis/redis-stack:包含 Redis Stack server 和 Redis Insight。该容器最适合本地开发。
  • redis/redis-stack-server:仅提供 Redis Stack server 。该容器最适合生产部署。
两者区别在于有没有带有 RedisInsight web可视化界面,redis/redis-stack 带有 RedisInsight。
注:由于我不需要 web 版的 RedisInsight ,所以选择 redis/redis-stack-server 镜像。

准备

安装 docker-compose

已安装请跳过
# 检查是否安装 
docker-compose --version
# 通过 curl 安装
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 设置权限
sudo chmod +x /usr/local/bin/docker-compose

创建挂载目录

# 宿主机上创建数据持久化目录
# 具体目录个人自定义,我为了方便管理 docker 挂载配置全部放在 /usr/local/software/docker 目录下
mkdir -p /usr/local/software/docker/redisStack/data

创建

创建 docker-compose.yml 文件

回到 /usr/local/software/docker/redisStack 目录下
# 返回 /redisStack 目录 
cd /usr/local/software/docker/redisStack
# 创建 docker-compose.yml 文件
vim docker-compose.yml
复制以下内容:
version: '3.8'
services:
  redis-stack-server:
    image: redis/redis-stack-server:latest
    container_name: redis-stack-server
    ports:
      - "6379:6379"
    # 如果使用 redis-stack 镜像,请解开注释,8001端口为 Redis Insight WEB UI 默认端口
    # - "8001:8001"
    volumes:
    # 1.使用主机绝对路径挂载数据
      - /usr/local/software/docker/redisStack/data:/data
    # 2.如果使用 docker 卷挂载数据,需要定义 'volumes:'
    # - redis-data:/data
    environment:
      - REDIS_PASSWORD=gusy1234
    # 以下为介绍用,可删除
    # 核心配置:
    # - REDIS_PORT=6379
    # - REDIS_PASSWORD=gusy1234
    # - REDIS_DATABASES=16
    # - REDIS_MAXMEMORY=512mb
    # - REDIS_MAXMEMORY_POLICY=allkeys-lru
    # 持久化配置:
    # - REDIS_APPENDONLY=yes
    # - REDIS_SAVE="900 1 300 10 60 10000"
    # 网络安全配置:
    # - REDIS_BIND=0.0.0.0
    # - REDIS_PROTECTED_MODE=yes
    restart: always
# 如果你使用 docker 卷挂载,请解开注释
# 你可以通过命令 'docker volume inspect redis-data' 查看卷的物理位置等信息
#volumes:
#  redis-data:

配置说明

iamge:指定 Redis Stack server 的镜像版本
ports
  • 6379:6379:将容器的 Redis 端口映射到主机的 6379 端口。
  • 8001:8001:将容器的 RedisInsight 端口映射到主机的 8001 端口(如果选择 Redis Stack 镜像可配置)。
volumes
  • ../redisStack/data:/data:使用主机绝对路径挂载数据,语法:‘宿主机目录:容器目录’。
  • redis-data:/data:使用 docker 卷挂载数据,需要定义 'volumes:',你可以通过命令 'docker volume inspect redis-data' 查看卷的物理位置等信息。
environment
  • REDIS_PORT:指定 Redis 服务的端口号(默认是 6379)。
  • REDIS_PASSWORD:设置 Redis 访问密码。
  • REDIS_DATABASES:设置 Redis 支持的数据库数量(默认是 16)。
  • REDIS_MAXMEMORY:设置 Redis 的最大内存限制(例如 512mb,1gb,支持的单位有:kb、mb、gb)。
  • REDIS_MAXMEMORY_POLICY:设置内存达到上限时的淘汰策略(例如 allkeys-lru,默认 noeviction)。
# 可选值:
1 noeviction(默认):
    当内存不足时,新写入操作会返回错误(如 (error) OOM command not allowed when used memory > 'maxmemory')。
    适用于不允许丢失任何数据的场景。
2 allkeys-lru:
    从所有键中淘汰最近最少使用的键。
    适用于需要缓存大量数据且可以接受淘汰部分数据的场景。
3 volatile-lru:
    仅从设置了过期时间的键中淘汰最近最少使用的键。
    适用于需要保留永久数据但可以淘汰缓存数据的场景。
4 allkeys-random:
    从所有键中随机淘汰键。
    适用于对淘汰策略没有特殊要求的场景。
5 volatile-random:
    仅从设置了过期时间的键中随机淘汰键。
    适用于需要保留永久数据但可以随机淘汰缓存数据的场景。
6 allkeys-lfu(4.0版本以上支持):
    从所有键中淘汰最不经常使用的键。
    适用于需要根据使用频率淘汰数据的场景。
7 volatile-lfu(4.0版本以上支持):
    仅从设置了过期时间的键中淘汰最不经常使用的键。
    适用于需要根据使用频率淘汰缓存数据的场景。
8 volatile-ttl:
    从设置了过期时间的键中淘汰剩余生存时间(TTL)最短的键。
    适用于需要优先淘汰即将过期的键的场景。
  • REDIS_APPENDONLY:启用 AOF(Append-Only File)持久化(yes 或 no)。
  • REDIS_SAVE:配置 RDB 快照的保存策略(例如“900 1 300 10 60 10000”)。
# “900 1 300 10 60 10000” 表示:
如果 900 秒(15 分钟)内发生至少 1 次写操作,则触发快照保存。
如果 300 秒(5 分钟)内发生至少 10 次写操作,则触发快照保存。
如果 60 秒(1 分钟)内发生至少 10,000 次写操作,则触发快照保存。
  • REDIS_BIND:绑定 Redis 监听的 IP 地址(默认是 0.0.0.0,即所有接口)。
  • REDIS_PROTECTED_MODE:启用保护模式(yes 或 no)。

验证配置

docker-compose -f docker-compose.yml config

启动

启动服务

# 启动服务
docker-compose up -d
执行结果
440d15df02574cfb91ef109ebac6fbbe.png

验证服务

1、查看服务是否状态
docker-compose ps
查看日志
docker-compose logs -f redis-stack-server
2、telnet 6379 端口验证
telnet 127.0.0.1 6379
3、使用工具验证 ( 我本地安装了 Redis Insight )
ce9200cdd97d4e189f112ce8f37fd161.png

进入容器

docker-compose exec redis-stack-server /bin/bash

拓展

docker-compose 其它语法

# 进入 docker-compose.yml 文件所在目录
# 停止服务
docker-compose down
# 进入容器
docker-compose exec <service_name> /bin/bash


http://www.kler.cn/a/488418.html

相关文章:

  • pytest 参数介绍
  • ELK日志分析实战宝典之ElasticSearch从入门到服务器部署与应用
  • 【GlobalMapper精品教程】093:将tif影像色彩映射表(调色板)转为RGB全彩模式
  • RK3568 Android 13 内置搜狗输入法小计
  • 【SpringAOP】Spring AOP 底层逻辑:切点表达式与原理简明阐述
  • Python教程丨Python环境搭建 (含IDE安装)——保姆级教程!
  • Linux 文件的特殊权限—ACL权限控制
  • JavaScript Chrome 中的运行
  • Android 12.0 mtk平板camera2横屏预览旋转90度横屏保存录像旋转90度功能实现
  • Python对象的序列化和反序列化工具:Joblib与Pickle
  • Linux 系统 PWM 风扇驱动框架学习记录
  • 【比较乱,如果遇到相同问题可以看】Autoware.universe的绕障线路的参数修改
  • CSS——39. 文本修饰(文本属性)
  • 用 Python 绘制可爱的招财猫
  • 新车月交付突破2万辆!小鹏汽车“激活”智驾之困待解
  • Uniapp仿ChatGPT Stream流式输出(非Websocket)
  • UML(统一建模语言)
  • VUE3 VITE项目在 npm 中,关于 Vue 的常用命令有一些基础命令
  • clickhouse 离线包安装(ubuntu)
  • SOLIDWORKS 或 AutoCAD:选择CAD 解决方案时应考虑哪些问题?
  • TR-069协议学习--Soap报文、事件、RPC方法
  • ubuntu报错:没有在该文件夹中粘贴文件的权限
  • 【Unity功能集】TextureShop纹理工坊(十二)画笔工具、橡皮擦工具
  • 初学stm32 --- DAC输出
  • 谷歌浏览器的文件管理与上传功能
  • 【C++】22.AVL树实现