你不知道的Redis Search 以及安装指南

news2024/12/23 15:45:11

theme: orange

本文正在参加「金石计划」

这篇文章是为了使用Redis Search 的向量搜索功能提前做的环境准备工作。即讨论如何在准备生产的 linux 环境中安装 RediSearch 和 RedisJSON 模块。

什么是RediSearch?

根据RediSearch的官方文档 RediSearch是这样描述的。

RediSearch为Redis提供二级索引、全文搜索和查询语言。这些功能可以实现多字段查询、聚合、精确短语匹配和文本查询的数字过滤。

对于开发者来说,这意味着你现在可以在Redis上运行类似于SQL的文本搜索查询,以及支持更多的场景。

安装

RediSearch 是作为一个模块安装在 Redis 部署中的。为了使用 RediSearch 的一些高级功能,你需要同时安装 RedisJSON,有三种方式可以安装和使用这些功能。

  • 使用 Redis Cloud - 其提供一个完全免费的管理数据库,最大容量为 30MB。已经包括推荐的模块,如RediSearchRedisJSONRedisGraphRedisTimeSeriesRedisBloom。很适合去体验,熟悉一下RediSearch的功能。

  • 使用Docker运行 - 如果你会使用Docker,并且应用程序将会部署Docker,那可以采取这个方式。

  • 从源代码构建 RediSearch - 生产应用的首选方式。

从源代码构建 RediSearch 和 RedisJSON 模块

bash git clone --recursive https://github.com/RediSearch/RediSearch.git cd RediSearch sudo make setup make build 运行以上4条命令后,你应该在~/RediSearch/bin/linux-x64-release/search的位置有一个名为redisearch.so的文件。

然后将文件redisearch.so移至/etc/redis (这样做是为了防止redis服务器重启时出现权限拒绝的错误)。

如果你实在不想自己构建,可以去官网下载预编译的版本。

同样的方式,去编译 RedisJSON模块。 bash git clone https://github.com/RedisJSON/RedisJSON.git cd RedisJSON sudo apt install build-essential llvm cmake libclang1 libclang-dev cargo make

运行以上4条命令后,你应该在~/RedisJSON/bin/linux-x64-release的位置有一个名为rejson.so的文件。

将文件rejson.so移至/etc/redis (这样做是为了防止redis服务器重启时出现权限拒绝的错误) 。

安装 RediSearch 和 RedisJSON 模块

当你准备好redisearch.so和rejson.so文件,接下来你需要将它们加载到redis中,在此之前,务必去报已经以独立或者集群的模式安装好redis。

有两种方法可以让你在redis部署中加载模块,即

  1. 在发出redis-server命令时使用CLI选项 --loadmodule(不建议用于生产)。
  2. 使用 redis.conf 文件 - 在/etc/redis/redis.conf 中添加以下一行(建议用于生产)。

bash loadmodule /etc/redis/redisearch.so loadmodule /etc/redis/rejson.so

然后用sudo service redis-server重启服务。

检查模块是否成功安装

运行 redis-cli 并输入命令module list。这将返回有关加载到服务器的模块的信息。下面是我机器上的一个截图,可以看到两个模块都被成功加载。

image.png

Docker 部署

看到上面的操作,是不是觉得还真的是有点麻烦,那如果你的机器上已经部署有docker,不妨试试下面的命令。

``bash docker pull redis/redis-stack-server docker run -vpwd`/local-redis-stack.conf:/redis-stack.conf -p 6379:6379 redis/redis-stack-server:latest

```

下图为成功运行的容器。

image.png

如果有额外的参数,比如设置redis 访问密码,请在命令行添加 -e REDIS_ARGS="--requirepass redis-stack"

如果要在生产环境用,请使用docker-compose进行部署,并挂载redis.conf覆盖容器的redis配置文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/445589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线性表,栈和队列(2)

作者:额~我那个早过50了,忘记了 言归正传ca 什么是栈? 小李攒钱买了车,可是他家住在胡同的尽头。胡同很窄,只能通过一辆车,而且是死胡同。小李每天都为停车发愁,如果回家早了停在里面&#x…

pandas笔记:pandas 排序 (sort_values)

1 函数说明 DataFrame.sort_values(by,*, axis0, ascendingTrue, inplaceFalse, kindquicksort, na_positionlast, ignore_indexFalse, keyNone) 2 参数说明 by string或者一组string组成的list,根据什么进行排序 axis{0 or ‘index’, 1 or ‘columns’}ascendi…

其它 Composition API

1.shallowReactive 与 shallowRef shallow有浅的意思 首先在原有的页面上引入它,然后用shallowReactive包裹它 浅层次的意思就是像name,age这些是响应式的,而job就不处理,意思就是只处理第一层数据,像第二层的都不处理…

电气互联系统有功-无功协同优化模型

目录 1 主要内容 模型示意图 目标函数 程序亮点 2 部分程序 3 程序结果 4 程序链接 1 主要内容 本程序基本复现《“碳中和”目标下电气互联系统有功-无功协同优化模型》,文献模型提供了一个很好的创新思路,把常规电气互联系统的调度和有功无功优化…

【Linux】-关于Linux的指令(上)

作者:小树苗渴望变成参天大树 作者宣言:认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧! TOC 前言 今天我们来讲关于Linux的基本指令,博主讲的指令会对应着Windows…

Java 8中新特性Stream的详细理解和使用

Java 8中新特性Stream的基本理解和使用 Stream基本概念 Stream流是来自数据源的元素队列并支持聚合操作 **元素:**是特定类型的对象,是数据源形成的一个队列。Java中Stream不会存储元素,而是按需计算 数据源:Stream流数据的来…

自定义函数 | R语言批量计算组间差值

批量字符替换、数值大小比较并重新赋值 cal_repeat()函数的实际操作1.不考虑处理变量。考虑多变量和指定2列变量的情况(长数据):2.考虑处理变量。考虑多处理,多变量的情况(长数据):3.考虑处理变…

Node【Global全局对象】

文章目录 🌟前言🌟Global全局对象🌟Global对象属性与方法🌟Global对象属性🌟process🌟Buffer类🌟console 🌟写在最后 🌟前言 哈喽小伙伴们,新的专栏 Node 已…

华为OD机试真题(Java),最优策略组合下的总的系统消耗资源数(100%通过+复盘思路)

一、题目描述 在通信系统中有一个常见的问题是对用户进行不同策略的调度,会得到不同系统消耗的性能。 假设由N个待串行用户,每个用户可以使用A/B/C三种不同的调度策略,不同的策略会消耗不同的系统资源。 请你根据如下规则进行用户调度&…

netty源码阅读--服务启动

背景 netty是一个非常成熟的NIO框架,众多apache的顶级项目底层通信框架都是用的是netty,本系列博客主要是记录自己复习netty源码的过程,重在理解netty的关键如:如何启动,如何接受网络数据、netty的内存管理机制以及编解码器等&am…

【KingSCADA】如何建立硬件系统及相关变量

小伙伴们大家好,我是雷工! 本篇学习了解KingSCADA3.8如何建立硬件系统及相关变量,以下为学习过程和操作记录。 一、前言 本篇主要讲解如何定义设备,如何定义变量。 KingSCADA3.8的采集系统是指负责和现场设备进行通讯&#xff0…

通过azure学生认证拿到一年服务器使用权

通过azure学生认证 因为国内备案被迫找其他服务器 开始我买了一个华为的服务器,大家都知道,在国内,服务器是需要备案的。如果你备案过的话,就知道这个是非常麻烦的事情。时间久不说。过程也是非常的繁琐。这个繁琐的过程&#x…

《Linux基础》06. 进程管理 · 服务管理

Linux基础-06 1:进程管理1.1:查看进程1.1.1:ps1.1.2:pstree1.1.3:top 1.2:终止进程1.2.1:kill1.2.2:killall 2:服务管理2.1:运行级别2.2:服务查看…

每日一练2023.4.17-2023.4.18

数轴上的bfs 农夫约翰被通知,他的一只奶牛逃逸了!所以他决定,马上出发,尽快把那只奶牛抓回来. 他们都站在数轴上.约翰在N(0≤N≤100000)处,奶牛在K(0≤K≤100000)处.约翰有 两种办…

门控循环神经网络学习笔记

在介绍门控循环神经网络之前,先简单介绍循环神经网络的基本计算方式: 循环神经网络之称之为“循环”,因为其隐藏状态是循环利用的: 上一次输入计算出的隐藏状态与当前的输入结合,得到当前隐藏状态。 cur_output, cur…

【嵌入式笔/面试】嵌入式软件基础题和真题总结——操作系统

在学习的时候找到几个十分好的工程和个人博客,先码一下,内容都摘自其中,有些重难点做了补充! 才鲸 / 嵌入式软件笔试题汇总 嵌入式与Linux那些事 阿秀的学习笔记 小林coding 百问网linux 嵌入式软件面试合集 2022年春招实习十四面…

电脑丢失的dll文件怎么一键修复?修复dll方法分享

电脑丢失的dll文件怎么一键修复?电脑状况常常让人遇到各种问题,其中“DLL文件丢失”是最常见的问题之一。在这篇文章中,我们会介绍为何会出现DLL文件丢失的问题,以及提供一种简单、快捷的DLL文件修复方法。 一.为何会出现DLL文件丢…

vue使用vue-mapvgl实现烟台市各区县行政区绘制、三维柱状图

一、效果展示 二、地图组件: vue-mapvgl https://docs.guyixi.cn/vue-mapvgl/#/ 三、代码 main.js //vue-mapvGL import VueBMap from vue-bmap-gl; import vue-bmap-gl/dist/style.css import VueMapvgl from vue-mapvgl; Vue.use(VueBMap); Vue.use(VueMapvg…

c++算法——算法章节-时间空间复杂度

算法开章咯 这次是csp-j组算法 枚举法常用排序合集hash一维前缀和vector结构体queuestack贪心-简单贪心区间递归二分setmap二叉树图的遍历-邻接矩阵迷宫问题-dfs-深度优先搜素bfs-广度优先搜索动态规划-简单动态规划-01背包动态规划-背包-多重背包二分答案 算法是什么嘛&…

腾讯云轻量4核8G12M应用服务器带宽、月流量详细性能评测

腾讯云轻量4核8G12M应用服务器带宽,12M公网带宽下载速度峰值可达1536KB/秒,折合1.5M/s,每月2000GB月流量,折合每天66GB,系统盘为180GB SSD盘,地域节点可选上海、广州或北京,4核8G服务器网来详细…