Redis7系列:Redis对决Redis Stack

876 阅读5分钟

cover_image

Redis 是由 Redis Ltd.开发的高性能开源内存数据库,以其极速响应和灵活的数据结构(如字符串、哈希、列表)著称,广泛应用于缓存、实时消息队列等场景。为应对复杂数据处理需求,Redis Stack 应运而生——它在 Redis 核心基础上,无缝集成了 RediSearch(全文搜索)、RedisJSON(JSON文档)、RedisGraph(图数据库)、RedisTimeSeries(时序数据)等模块,提供多模型数据一站式解决方案。Redis 适合轻量级任务,而Redis Stack 以开箱即用的特性,赋能开发者高效构建搜索、推荐、物联网分析等高级应用,是扩展性与易用性的理想结合。

01 Redis安装

1.1 Redis7说明

Redis官网已经相比之前已经发生了变化,单纯的找到Redis的安装还没有那么容易哦。官网地址:redis.io/。

image-20250305192248386

1.2 Redis7下载位置

Redis下载操作:

image-20250305192407003

image-20250305192457605

image-20250305192607866

image-20250305192651989

按照以上的截图就可以找到Redis稳定版本,可以使用命令wget下载,也可以直接通过网址(download.redis.io)下载。

image-20250305192730628

1.3 Redis历史版本下载

下载历史版本的地址:download.redis.io/releases/

image-20250305192800707

1.4 Redis的编译安装

文件上传linux并解压并重命名,重命名可根据实际情况或者忽略,因为我下载的版本是7.4.2,所以重命名为redis-7.4.2:

tar -xzvf redis-stable.tar.gz -C /opt/redis-7.4.2

因为Redis安装需要C++环境,所以需要检查gcc-c++是否存在。检查和安装的命令:

# 查看版本
gcc -v  
# 没有的话,需要安装
yum install gcc-c++

进入 redis-7 .4 .2文件下编译并安装:

#编译
make

#安装到指定文件,默认安装到 /usr/local/binx下
# 笔者指定了安装目录,并在redis下新建了log、conf文件目录
make install PREFIX=/usr/local/redis

1.5 Redis的配置

需要从解压的文件中将redis.conf 拷贝到/usr/local/redis/conf下:

cp /opt/redis-7.4.2/redis.conf /usr/local/redis/conf

配置文件主要修改点:

# 允许所有IP绑定,默认是127.0.0.1。
bind 0.0.0.0  
# 关闭保护模式,这样第三方客户端才能链接上。默认yes
protected-mode no  
# 是否后台启动,默认是no
daemonize yes 
# 指定日志目录。默认为空,不打印日志
logfile "/usr/local/redis/log/redis.log" 


# 笔者下面的认证均没有配置,用户可自行配置
# 设置密码
# requirepass your_password  
# 设置用户名和密码。users.acl文件需要自己创建
# users.acl内容格式:user your_username your_password +@all 
# aclfile /etc/redis/users.acl

1.6 Redis的启动

进入/usr/local/redis/bin下,指定配置文件启动:

./redis-server ../conf/redis.conf 

查看是否启动成功,返回PONG表示启动成功:

02 Redis Stack安装

2.1 Redis Stack说明

Redis Stack 是Redis的扩展,提供了丰富的特性以及高级应用。 Redis Stack可以单独使用,也可以加载到Redis中集成使用。Redis Stack的配置项比较简单,没有Redis那么详细。

因为使用 Redis Stack,Redis的基础功能也能使用,但是Redis的详细配置就需要一一配置。所以不建议直接使用 Redis Stack,可以通过加载模块的方式引入进来。

2.2 Redis Stack下载

Redis Stack下载步骤:

image-20250305193048165

image-20250305193141620

用户可以根据自己的平台下载属于自己的数据源。由于笔者使用的是Centos7,Redis Stack7.4不支持Centos7,最低支持Centos8。笔者也测试过Centos8的包,使用的时候会出现编译插件版本过低导致无法使用的情况。

所以笔者选择老的版本,直接从GitHub上下载:

image-20250305193217075

2.3 Redis Stack配置

解压Redis Stack数据包到/opt/ redis-stack-6.2.6下, 扩展包主要在 lib 下面 :

image-20250305193255891

Redis可以直接操作JSON,这个是扩展功能,Redis本身并不支持。

image-20250305193325832

需要在Redis的配置文件中加载对用的.so文件即可。

loadmodule /opt/redis-stack-6.2.6/lib/rejson.so

image-20250305193404935

2.4 Redis Stack测试

重启Redis,测试重新使用JSON.SET的命令测试:

image-20250305193433624

查看,验证成功:

image-20250305193505053

03 Redis与Redis Stack异同

3.1 核心定义

Redis 是一个开源的 内存数据库 ,以高性能、低延迟著称,支持基础数据结构(如字符串、哈希、列表、集合、有序集合等),常用于缓存、消息队列、实时数据处理等场景。

Redis Stack 是 Redis 的 扩展版本 ,整合了 Redis 核心数据库与多个高级功能模块(如全文搜索、JSON 文档存储、图数据库、时间序列等),提供“一站式”解决方案,简化了复杂数据场景的开发

3.2 核心功能对比

特性RedisRedis Stack
基础数据结构支持(字符串、哈希、列表等)完全兼容 Redis 的所有功能
高级数据模型内置 RediSearch、RedisJSON、RedisGraph 等模块
全文搜索需手动集成 RediSearch内置 RediSearch(支持索引和复杂查询)
JSON 支持需手动集成 RedisJSON内置 RedisJSON(直接操作 JSON 文档)
图数据库需手动集成 RedisGraph内置 RedisGraph(支持图遍历查询)
时间序列需手动集成 RedisTimeSeries内置 RedisTimeSeries(高效存储时间序列数据)
概率数据结构需手动集成 RedisBloom内置 RedisBloom(支持布隆过滤器等)
AI 向量搜索支持向量相似度搜索(通过 RediSearch 扩展)

3.3 易用性与集成性

Redis 需要用户自行安装和配置额外模块(如 RediSearch、RedisJSON),适合对定制化要求较高的场景。

Redis Stack 开箱即用,预集成所有模块,提供统一的 CLI、客户端库和管理工具(如 RedisInsight),大幅降低复杂功能的开发门槛。

3.4 适用场景

Redis

  • 只需要基础数据结构(如缓存、消息队列)。
  • 对许可证合规性有严格要求(如云厂商二次分发)。
  • 希望手动控制模块的版本和配置。
  • Redis是轻量级的内存数据库,适合基础场景。

Redis Stack

  • 需要全文搜索、JSON 文档、图数据库等多模型功能。
  • 希望快速开发复杂应用(如实时推荐、日志分析、物联网时序数据)。
  • 倾向于开箱即用的解决方案,减少部署和维护成本。
  • 是Redis功能增强版,整合了多个扩展模块,适合需要多模型数据处理的一站式解决方案。

--END--

喜欢就点赞、收藏,微信可以搜公众号【编程朝花夕拾】或扫码关注我哦!