Redis和RediSearch的安装及使用
1. 安装要求
- ReadiSearch要求Redis的版本在6.0以上
- RediSearch 要求使用 GNU Make 4.0 或更高版本
2. Redis的安装
查看redis的版本:
redis-server --version
或者,如果你已经启动了Redis服务器,你也可以使用redis-cli工具来获取版本信息:
redis-cli INFO SERVER | grep redis_version
2.1 有root权限
- 下载并解压 Redis 源代码:
wget http://download.redis.io/releases/redis-6.0.5.tar.gz
tar xzf redis-6.0.5.tar.gz
cd redis-6.0.5
- 编译和安装 Redis:
make
sudo make install
- 启动 Redis 服务器:
redis-server
2.2 没有root权限
- 下载 Redis 源代码:
wget http://download.redis.io/releases/redis-6.0.5.tar.gz
tar xzf redis-6.0.5.tar.gz
cd redis-6.0.5
- 编译和安装 Redis:
make
make PREFIX=/path/to/installation/directory install
这里,/path/to/installation/directory 是你希望安装 Redis 的目录。确保你有在该目录中写权限。
- 启动 Redis 服务器:
/path/to/installation/directory/src/redis-server
替换 /path/to/installation/directory 为你选择的 Redis 安装目录。
这样,你就能够以非 root 用户身份在指定目录中安装和运行 Redis。请注意,使用非 root 用户运行 Redis 有一些限制,比如不能使用低于 1024 的端口号,因为这些端口需要 root 权限。确保你遵循 Redis 的安全最佳实践,并根据实际需求进行配置。
如果你想要在非默认的端口上运行 Redis,可以使用 redis.conf 文件进行配置,指定非 root 用户可以访问的端口。
3. 安装 RedisSearch
- 下载并解压 RedisSearch 源代码:
wget https://github.com/RediSearch/RediSearch/archive/v2.6.2.tar.gz
tar xzf v2.6.2.tar.gz
cd RediSearch-2.6.2 # 根据实际解压的目录名调整
- 编译和安装 RedisSearch 源代码:
make
sudo make install
- 加载 RedisSearch 模块:
redis-cli
127.0.0.1:6379> MODULE LOAD /path/to/redisearch.so
请将 /path/to/redisearch.so 替换为实际的路径。
-验证安装:
在 Redis CLI 中执行以下命令,如果 RedisSearch 安装成功,你将看到关于 RedisSearch 模块的信息:
127.0.0.1:6379> FT.INFO index_name
请将 index_name 替换为实际的索引名。
以上步骤是一般性的安装步骤,确保你的系统已经安装了构建工具(如 make),并具有运行 Redis 和 RedisSearch 的权限。
请注意,这只是一个示例,确保你的 Redis 版本和 RedisSearch 版本是兼容的,以避免不同版本之间的兼容性问题。
4. 安装 RediSearch可能会出现的问题
- 没有安装git
确保你的系统上安装了 git,并且安装了编译工具(例如 make、gcc)。
在 Ubuntu 上可以使用以下命令安装:
sudo apt-get update
sudo apt-get install git build-essential
- 没有安装RediSearch 的依赖项
在 RediSearch 源代码目录下,执行 make 之前,运行以下命令:
make deps
这将尝试下载和安装 RediSearch 的依赖项。如果有问题,它可能会输出一些错误信息,你需要解决这些错误。
如果是网络问题,可能需要手动将依赖项下载下来放到对应的文件夹里。
- 检查 readies 子模块:
确保 readies 子模块已经被正确地初始化。在 RediSearch 源代码目录下运行:
git submodule update --init --recursive
- 执行 make:
make
- 执行 make test:
make test
这将运行测试来确保编译的 RediSearch 版本是正确的。
- 执行 make install:
make install
这将安装 RediSearch。
如果在这些步骤中的任何一步出现错误,请仔细查看错误消息,可能会提供更多关于问题的线索。根据错误信息,你可能需要进一步解决缺失的依赖项或者设置环境变量。
5. 安装最新版本的 GNU Make
查看GNU Make的版本:
make -v
make --version
5.1 如果有root权限
- 在 Ubuntu 上安装最新版本的 GNU Make:
sudo apt-get update
sudo apt-get install make
- 在 CentOS/RHEL 上安装最新版本的 GNU Make:
sudo yum update
sudo yum install make
- 在 macOS 上使用 Homebrew 安装最新版本的 GNU Make:
brew update
brew install make
5.2 没有root权限
通常情况下,你可以在没有 root 权限的情况下升级 GNU Make。这可以通过在用户的主目录或其他你有写权限的目录中安装新版本的 GNU Make 来实现。以下是一种常见的方法:
- 下载最新版本的 GNU Make 源代码:
wget https://ftp.gnu.org/gnu/make/make-4.3.tar.gz
或者使用 curl:
curl -O https://ftp.gnu.org/gnu/make/make-4.3.tar.gz
- 解压源代码:
tar xzf make-4.3.tar.gz
- 进入解压后的目录:
cd make-4.3
- 配置、编译和安装:
./configure --prefix=$HOME/make-4.3
make
make install
这里,–prefix=$HOME/make-4.3 指定了安装目录为用户主目录下的 make-4.3 目录。你可以根据需要选择其他目录。
- 添加新版本的 GNU Make 到 PATH:
在你的 shell 配置文件(例如 .bashrc 或 .zshrc)中添加以下行:
export PATH=$HOME/make-4.3/bin:$PATH
然后运行 source ~/.bashrc 或 source ~/.zshrc 来使配置生效。
现在,你应该能够使用新版本的 GNU Make 了,而不需要 root 权限。确保在执行 make --version 时显示的版本是你刚刚安装的版本。
相关文章:
Redis和RediSearch的安装及使用
1. 安装要求 ReadiSearch要求Redis的版本在6.0以上RediSearch 要求使用 GNU Make 4.0 或更高版本 2. Redis的安装 查看redis的版本: redis-server --version或者,如果你已经启动了Redis服务器,你也可以使用redis-cli工具来获取版本信息&a…...
面向对象进阶--接口2
JDK8开始接口中新增的方法 接口中可以定义有方法体的方法(默认、静态)。 使用默认方法的作用:解决接口升级的问题。 接口中默认方法的定义格式: public default返回值类型 方法名(参数列表){} 接口中默…...
提升认知,推荐15个面向开发者的中文播客
前言 对于科技从业者而言,无论是自学成才的程序员,还是行业资深人士,终身学习是很有必要的,尤其是在这样一个技术快速迭代更新的时代。 作为一个摆脱了时间和空间限制的资讯分享平台,播客(Podcast&#x…...
数据分析-Pandas如何整合多张数据表
数据分析-Pandas如何整合多张数据表 数据表,时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。数据分析过程中表格重整,重新调整,重塑数据表是很重要的技巧,…...
配置redis挂载
1. 暂停和删除redis 2.创建文件夹 /usr/local/software/redis/6379/conf/ /usr/local/software/redis/6379/data/ 把redis-conf文件上传到conf文件夹中 3.配置网络 docker network create --driver bridge --subnet172.18.12.0/16 --gateway172.18.1.1 wn_docker_net 4.运…...
C++ 实现游戏(例如MC)键位显示
效果: 是不是有那味儿了? 显示AWSD,空格,Shift和左右键的按键情况以及左右键的CPS。 彩虹色轮廓,黑白填充。具有任务栏图标,可以随时关闭字体是Minecraft AE Pixel,如果你没有装(大…...
力扣hot100 合并两个有序链表 递归 双指针
Problem: 21. 合并两个有序链表 文章目录 💖 递归思路 💖 双指针 💖 递归 思路 👨🏫 参考地址 n , m n,m n,m 分别为 list1 和 list2 的元素个数 ⏰ 时间复杂度: O ( n m ) O(nm) O(nm) 🌎 空间复杂…...
10个常用python自动化脚本
大家好,Python凭借其简单和通用性,能够为解决每天重复同样的工作提供最佳方案。本文将探索10个Python脚本,这些脚本可以帮助自动化完成任务,提高工作效率。无论是开发者、数据分析师还是仅仅想简化工作流程的普通用户,…...
C++中函数的默认参数(缺省参数)
一、函数默认参数的概念 在函数声明时,预先对函数参数进行赋值,该参数即为函数的默认参数,也叫缺省参数。 如下函数func1包含默认参数,若调用函数func1时没有给函数传入实参,则默认实参为10086 void func1(int a 1…...
在线扒站网PHP源码-在线扒站工具网站源码
源码介绍 这是一款在线的网站模板下载程序,也就是我们常说的扒站工具,利用它我们可以很轻松的将别人的网站模板样式下载下来,这样就可以大大提高我们编写前端的速度了!注:扒取的任何站点不得用于商业、违法用途&#…...
vue+elementUI el-select 中 没有加clearable出现一个或者多个×清除图标问题
1、现象:下方截图多清除图标了 2、在全局common.scss文件中加一个下方的全局样式noClear 3、在多清除图标的组件上层div加noClear样式 4、清除图标去除成功...
【Python从入门到进阶】47、Scrapy Shell的了解与应用
接上篇《46、58同城Scrapy项目案例介绍》 上一篇我们学习了58同城的Scrapy项目案例,并结合实际再次了项目结构以及代码逻辑的用法。本篇我们来学习Scrapy的一个终端命令行工具Scrapy Shell,并了解它是如何帮助我们更好的调试爬虫程序的。 一、Scrapy Sh…...
【ARM 嵌入式 编译系列 2.2 -- GCC 编译参数学习 assembler-with-cpp 使用介绍】
请阅读【嵌入式开发学习必备专栏 之 ARM GCC 编译专栏】 文章目录 GCC 编译选项 assembler-with-cpp GCC 编译选项 assembler-with-cpp 在 rt-thread 的编译脚本中经常会看到下面编译参数: AFLAGS -c DEVICE -x assembler-with-cpp -Wa,-mimplicit-itthumb a…...
深入理解java对象的内存布局
概述: 在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 在HotSpot虚拟机里,…...
MetaGPT中提到的SOP
MetaGPT框架中的提及的SOP概念指的是什么,有什么优点和缺点,为什么要使用SOP? 在MetaGPT框架中,SOP(Set of Procedures)指的是一套标准化的流程和步骤,用于指导模型完成特定任务。SOP可以帮助模型更好地理…...
第15届蓝桥杯嵌入式省赛准备第三天总结笔记(使用STM32cubeMX创建hal库工程+串口接收发送)
因为我是自己搞得板子,原本的下程序和串口1有问题,所以我用的是串口2,用的PA2和PA3 一,使用CubeMX配置串口 选择A开头的这个是异步通信。 配置串口参数,往届的题基本用的9600波特率,所以我这里设置为9600…...
centos安装redis,但是启动redis-server /home/redis/conf/redis7000.conf卡住,怎么解决
如果你在启动 Redis 服务器时发现过程卡住,这可能是由于几种不同的原因。下面是一些可能导致这种情况的原因以及相应的解决方法: 1. 后台启动 Redis 默认在前台运行。如果你在命令行启动 Redis 并且没有指定它在后台运行,它将在前台运行&am…...
开发实践6_project
要求: ① 页面写入超链接,获取所有数据item,显示在另一个页面,1min内,即使数据有变化,页面内容不变,1min后点击超链接可获取最新信息; ② 使用middleware完成用户请求路径判断 &am…...
HCIP----MGRE实验
实验要求: 第一步,基本的IP地址配置 R1: [R1]int g0/0/1 [R1-GigabitEthernet0/0/1]ip add 192.168.1.1 24 #配置PC的网关 [R1]int Serial 4/0/0 [R1-Serial4/0/0]link-protocol hdlc #R1和R2之间采用hdlc封装 [R1-S…...
STM32标准库开发——PWM驱动代码
PWM驱动初始化代码 使能定时器二时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);设置定时器时钟源 TIM_InternalClockConfig(TIM2);配置定时器二的时基单元 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; TIM_TimeBaseInitStruct.TIM_ClockDivisionTIM_CKD_D…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
