通过 Docker 安装和部署 KeyDB v6.3.4 的详细步骤

ops/2025/2/12 20:23:17/

KeyDB 是一种高性能的开源内存数据库,最初是基于 Redis 项目开发的,但在性能、特性和功能上进行了许多增强和改进。它兼容 Redis 的大部分命令和数据结构,因此可以作为 Redis 的替代品使用,尤其是在需要更高性能和多线程支持的场景中。
KeyDB 的特点

多线程架构
与 Redis 的单线程架构不同,KeyDB 提供了多线程支持,可以更好地利用多核 CPU 的性能,大幅提升了吞吐量和并发能力。
在高并发读写场景中,KeyDB 的表现显著优于 Redis。

完全兼容 Redis
KeyDB 支持 Redis 的协议、命令和数据结构,可以无缝迁移和替代 Redis。
现有的 Redis 客户端和工具几乎都可以直接用于 KeyDB

Active-Active 集群
KeyDB 支持多主节点(Active-Active)部署,允许多个节点同时处理写操作,这在分布式环境中提升了可用性和性能。
这一点是 Redis 默认的主从(Master-Slave)架构无法实现的。

内置多租户支持
KeyDB 内置多租户功能,可以通过不同的数据库区分用户和数据,而不需要像 Redis 那样手动管理多个实例。

高效的内存利用
KeyDB 提供了更高效的内存管理选项,支持线程并行的垃圾回收和压缩。

新功能支持
提供原生 TLS 加密支持。
支持混合存储(热数据存内存,冷数据存磁盘),降低内存成本。
KeyDB 的优势
性能:多线程架构使得 KeyDB 的性能比 Redis 高出 2-5 倍,特别是在高并发读写的场景下。
可靠性:Active-Active 架构避免了单点故障,提供了更高的可用性。
易用性:不需要修改现有的 Redis 配置和代码,快速切换到 KeyDB
成本节省:由于性能提升,KeyDB 可以减少实例数量,降低服务器成本和维护复杂度。
KeyDB 的应用场景
高并发场景:如电商、金融交易系统,KeyDB 在这些环境中能显著降低响应延迟并提高吞吐量。
实时分析:需要处理大量实时数据的系统,如推荐系统、数据监控和告警。
分布式系统的缓存:用作分布式服务中的缓存层,支持 Active-Active 多主节点模式,提高缓存的可用性。
多租户 SaaS:在需要隔离租户数据的环境下,KeyDB 提供原生多租户支持,可以简化管理。
在这里插入图片描述
谁会用 KeyDB
Redis 用户
如果 Redis 性能无法满足需求,可以无缝迁移到 KeyDB,享受更高性能。
需要多主架构的场景
KeyDB 的 Active-Active 架构特别适合需要同时处理多个写入的分布式系统。
希望降低成本的团队
使用 KeyDB 可以减少实例数量,节约内存和计算资源。

环境准备
确保你已经安装了以下工具:
Docker
Docker Compose(可选)
验证安装:

docker --version
docker-compose --version  # 如果需要
  1. 拉取 KeyDB v6.3.4 镜像
    KeyDB 提供官方的 Docker 镜像。拉取指定版本的 KeyDB 镜像:
docker pull eqalpha/keydb:6.3.4
  1. 创建配置文件(可选)
    如果需要自定义配置,可以创建一个配置文件,例如 keydb.conf,并放置在主机上。
    示例 keydb.conf 文件:
port 6379
save 900 1
save 300 10
save 60 10000
loglevel notice
logfile "/data/keydb.log"
dir "/data"
  1. 启动 KeyDB
    方式 1:通过单一容器运行
    运行 KeyDB 容器
docker run -d \--name keydb \-p 6379:6379 \-v /path/to/keydb.conf:/etc/keydb/keydb.conf \-v /path/to/data:/data \eqalpha/keydb:6.3.4 \keydb-server /etc/keydb/keydb.conf

解释:
-p 6379:6379:将主机的 6379 端口映射到容器的 6379 端口。
-v /path/to/keydb.conf:/etc/keydb/keydb.conf:挂载主机的配置文件到容器内。
-v /path/to/data:/data:挂载主机目录作为容器的数据存储。
keydb-server /etc/keydb/keydb.conf:启动 KeyDB 服务并加载配置文件。
方式 2:使用默认配置
如果不需要自定义配置文件,可以直接启动容器

docker run -d \--name keydb \-p 6379:6379 \eqalpha/keydb:6.3.4
  1. 使用 Docker Compose(可选)
    如果需要更复杂的管理,可以通过 Docker Compose 配置。
    创建 docker-compose.yml 文件:
version: '3.8'
services:keydb:image: eqalpha/keydb:6.3.4container_name: keydbports:- "6379:6379"volumes:- ./keydb.conf:/etc/keydb/keydb.conf- ./data:/datacommand: keydb-server /etc/keydb/keydb.conf

启动服务:

docker-compose up -d
  1. 验证服务
    验证 KeyDB 是否正常启动:
docker ps

进入容器并使用 keydb-cli 测试:

docker exec -it keydb keydb-cli

执行命令:

PING

如果返回 PONG,表示服务正常运行。

  1. 配置安全性
    为增强安全性:

设置密码: 在 keydb.conf 中添加:

requirepass yourpassword

然后重启容器
限制外部访问: 通过 Docker 配置防火墙或仅允许特定来源访问 6379 端口。
8. 升级或维护
停止旧容器

docker stop keydb
docker rm keydb

拉取新版本镜像并启动容器

docker pull eqalpha/keydb:latest

docker run … # 使用之前的启动命令
如果没有镜像仓库使用,可以使用我这也是可以的。

docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/keydb:latest

http://www.ppmy.cn/ops/157847.html

相关文章

OpenCV2D 特征框架 (19)目标检测类cv::CascadeClassifier的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::CascadeClassifier 是 OpenCV 中用于对象检测的一个核心类,特别适用于基于 Haar 特征和 LBP(局部二进制模式&#xf…

GRU 和 LSTM 公式推导与矩阵变换过程图解

GRU 和 LSTM 公式推导与矩阵变换过程图解 GRULSTM 本文的前置篇链接: 单向/双向,单层/多层RNN输入输出维度问题一次性解决 GRU GRU(Gate Recurrent Unit)是循环神经网络(RNN)的一种,可以解决RNN中不能长期…

使用Docker + Ollama在Ubuntu中部署deepseek

1、安装docker 这里建议用docker来部署,方便简单 安装教程需要自己找详细的,会用到跳过 如果你没有安装 Docker,可以按照以下步骤安装: sudo apt update sudo apt install apt-transport-https ca-certificates curl software-p…

【大模型】AI 辅助编程操作实战使用详解

目录 一、前言 二、AI 编程介绍 2.1 AI 编程是什么 2.1.1 为什么需要AI辅助编程 2.2 AI 编程主要特点 2.3 AI编程底层核心技术 2.4 AI 编程核心应用场景 三、AI 代码辅助编程解决方案 3.1 AI 大模型平台 3.1.1 AI大模型平台代码生成优缺点 3.2 AI 编码插件 3.3 AI 编…

怎样确定网站访问速度出现问题是后台还是服务器造成的?

网站的访问速度会影响到用户的体验感,当网络过于卡顿或访问速度较慢时,会给用户带来不好的体验感,但是网站访问速度不仅会是后台造成影响的,也可能是服务器的原因,那么我们该如何分辨呢? 当网站使用了数据库…

单片机上SPI和IIC的区别

SPI(Serial Peripheral Interface)和IC(Inter-Integrated Circuit)是两种常用的嵌入式外设通信协议,它们各有优缺点,适用于不同的场景。以下是它们的详细对比: — 1. 基本概念 SPI&#xff0…

【DeepSeek】deepseek可视化部署

目录 1 -> 前文 2 -> 部署可视化界面 1 -> 前文 【DeepSeek】DeepSeek概述 | 本地部署deepseek 通过前文可以将deepseek部署到本地使用,可是每次都需要winR输入cmd调出命令行进入到命令模式,输入命令ollama run deepseek-r1:latest。体验很…

C++ ——从C到C++

1、C的学习方法 (1)C知识点概念内容比较多,需要反复复习 (2)偏理论,有的内容不理解,可以先背下来,后续可能会理解更深 (3)学好编程要多练习,简…