Redis7系列:Redis对决RedisStack

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

01 Redis安装

1.1 Redis7说明

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

image-20250305192248386

1.2 Redis7下载位置

Redis下载操作:

image-20250305192407003

image-20250305192457605

image-20250305192607866

image-20250305192651989

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

image-20250305192730628

1.3 Redis历史版本下载

下载历史版本的地址:https://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

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

<think>好的,用户想了解RedisStack的安装配置和使用说明。首先,我需要回忆一下RedisStack的相关知识。RedisStack是在Redis的基础上扩展了更多数据结构和功能的版本,比如支持JSON、时间序列、图数据库等模块。用户提供的引用中提到了加载.so文件,比如rejson.so,这可能与RedisStack的模块加载有关。 接下来,我应该分步骤说明安装和配置过程。首先安装部分,可能需要从官网下载或者通过包管理器安装。比如在Ubuntu上使用apt,或者下载二进制文件。然后配置方面,需要编辑redis.conf文件,加载所需的模块,如引用1中提到的loadmodule指令。同时,确保配置文件中的端口、持久化设置等正确。 使用说明部分,需要举例说明如何通过redis-cli使用新增的功能,比如JSON操作。可能还需要提到如何验证模块是否加载成功,以及如何通过Redis协议与服务器交互,如引用2中的协议格式。此外,可能涉及线程类型,但引用3提到的是CLR线程池,可能与RedisStack本身关系不大,可以暂时忽略。 用户可能还关心如何优化性能或者常见问题处理,比如模块加载失败怎么办,配置参数调整等。需要确保回答结构清晰,分步骤讲解,并引用提供的资料作为支持。最后生成相关问题,帮助用户进一步探索。</think>### RedisStack 安装配置及使用说明 #### 一、安装步骤 1. **下载与安装** RedisStack 支持多种安装方式,包括二进制包和源码编译。以下以 Linux 系统为例: ```bash # 下载二进制包(版本可替换为最新) wget https://packages.redis.io/redis-stack/redis-stack-server-6.2.6-v7.bionic.x86_64.tar.gz # 解压到目标目录 tar -xzf redis-stack-server-6.2.6-v7.bionic.x86_64.tar.gz -C /opt/ ``` 2. **环境配置** 将 RedisStack 的可执行文件加入系统路径: ```bash echo 'export PATH="/opt/redis-stack/bin:$PATH"' >> ~/.bashrc source ~/.bashrc ``` #### 二、配置RedisStack 1. **加载扩展模块** 在 Redis 配置文件 `redis.conf` 中添加模块加载指令(如支持 JSON 的 `rejson.so`): ```conf loadmodule /opt/redis-stack/lib/rejson.so ``` 其他常用模块如时间序列(`redistimeseries.so`)也可通过类似方式加载[^1]。 2. **基础配置调整** - 修改监听端口:`port 6379` - 启用持久化:`save 60 1000`(60秒内至少1000次修改时触发快照) - 设置内存限制:`maxmemory 4gb` #### 三、使用说明 1. **启动服务** ```bash redis-server /path/to/redis.conf ``` 2. **通过`redis-cli`操作扩展功能** **示例:使用JSON模块存储数据** ```bash # 写入JSON对象 JSON.SET user1 . '{"name":"Alice","age":30}' # 读取字段 JSON.GET user1 .name ``` 3. **验证模块加载** 执行 `MODULE LIST` 命令查看已加载模块: ```bash 127.0.0.1:6379> MODULE LIST ``` 4. **协议交互(批量操作)** 根据 Redis 协议格式[^2],批量命令示例: ``` *3\r\n$3\r\nSET\r\n$5\r\nmykey\r\n$7\r\nmyvalue\r\n ``` #### 四、常见问题 - **模块加载失败**:检查路径权限及模块文件完整性。 - **内存不足**:调整 `maxmemory-policy` 配置淘汰策略。 - **性能优化**:结合线程模型(如IOCP线程[^3])调整 `io-threads` 参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智_永无止境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值