Redis 是由 Redis Ltd.开发的高性能开源内存数据库,以其极速响应和灵活的数据结构(如字符串、哈希、列表)著称,广泛应用于缓存、实时消息队列等场景。为应对复杂数据处理需求,Redis Stack 应运而生——它在 Redis 核心基础上,无缝集成了 RediSearch(全文搜索)、RedisJSON(JSON文档)、RedisGraph(图数据库)、RedisTimeSeries(时序数据)等模块,提供多模型数据一站式解决方案。Redis 适合轻量级任务,而Redis Stack 以开箱即用的特性,赋能开发者高效构建搜索、推荐、物联网分析等高级应用,是扩展性与易用性的理想结合。
01 Redis安装
1.1 Redis7说明
Redis官网已经相比之前已经发生了变化,单纯的找到Redis的安装还没有那么容易哦。官网地址:https://redis.io/。
1.2 Redis7下载位置
Redis下载操作:
按照以上的截图就可以找到Redis稳定版本,可以使用命令wget下载,也可以直接通过网址(https://download.redis.io)下载。
1.3 Redis历史版本下载
下载历史版本的地址:https://download.redis.io/releases/
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下载步骤:
用户可以根据自己的平台下载属于自己的数据源。由于笔者使用的是Centos7,Redis
Stack7.4不支持Centos7,最低支持Centos8。笔者也测试过Centos8的包,使用的时候会出现编译插件版本过低导致无法使用的情况。
所以笔者选择老的版本,直接从GitHub上下载:
2.3 Redis Stack配置
解压Redis Stack数据包到/opt/ redis-stack-6.2.6下, 扩展包主要在 lib 下面 :
Redis可以直接操作JSON,这个是扩展功能,Redis本身并不支持。
需要在Redis的配置文件中加载对用的.so文件即可。
loadmodule /opt/redis-stack-6.2.6/lib/rejson.so
2.4 Redis Stack测试
重启Redis,测试重新使用JSON.SET的命令测试:
查看,验证成功:
03 Redis与Redis Stack异同
3.1 核心定义
Redis 是一个开源的 内存数据库 ,以高性能、低延迟著称,支持基础数据结构(如字符串、哈希、列表、集合、有序集合等),常用于缓存、消息队列、实时数据处理等场景。
Redis Stack 是 Redis 的 扩展版本 ,整合了 Redis 核心数据库与多个高级功能模块(如全文搜索、JSON 文档存储、图数据库、时间序列等),提供“一站式”解决方案,简化了复杂数据场景的开发
3.2 核心功能对比
特性 | Redis | Redis 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
喜欢就点赞、收藏,微信可以搜公众号【编程朝花夕拾】或扫码关注我哦!