RediSearch是Redis的一个模块,提供查询、二次索引和全文搜索功能。 要使用RediSearch,首先要在Redis数据上声明索引。 然后可以使用research查询语言查询该数据。
RediSearch使用压缩的倒置索引,以较低的内存占用率进行快速索引。
重点:redis版本要安装6.0以上,这里安装的是 6.0.16 版本。
https://github.com/RediSearch/RediSearch
https://redis.io/docs/stack/search/quick_start/#download-and-running-binaries
# 下载源码
git clone --recursive https://github.com/RediSearch/RediSearch.git
cd RediSearch
## On Linux:
make setup
#Next, build:
make build
# 编译完成后,生成so文件如下
root@ubuntu-x64_02:/opt/RediSearch# find . -name "*.so"
./bin/linux-x64-release/search/redisearch.so
./bin/linux-x64-release/search/example_extension/libexample_extension.so
Next, run Redis with RediSearch:
# 将redisearch.so复制到bin目录,如下:
root@ubuntu-x64_02:/opt/RediSearch# ls -lth /usr/local/redis/bin/
total 58M
-rwxr-xr-x 1 root root 5.2M Jul 2 04:48 redisearch.so
-rwxr-x--- 1 redis redis 3.6K Jul 2 04:43 redis-trib.rb
-rwxr-x--- 1 redis redis 11M Jul 2 04:43 redis-server
-rwxr-x--- 1 redis redis 11M Jul 2 04:43 redis-sentinel
-rwxr-x--- 1 redis redis 6.0M Jul 2 04:43 redis-cli
-rwxr-x--- 1 redis redis 11M Jul 2 04:43 redis-check-rdb
-rwxr-x--- 1 redis redis 11M Jul 2 04:43 redis-check-aof
-rwxr-x--- 1 redis redis 5.6M Jul 2 04:43 redis-benchmark
-rwxr-x--- 1 redis redis 735 Jul 2 04:43 mkreleasehdr.sh
# 启动redis集群,所以节点都带参数--loadmodule
su - redis -c "/usr/local/redis/bin/redis-server /etc/redis7001.conf --loadmodule /usr/local/redis/bin/redisearch.so 2>&1 >/dev/null & "
su - redis -c "/usr/local/redis/bin/redis-server /etc/redis7002.conf --loadmodule /usr/local/redis/bin/redisearch.so 2>&1 >/dev/null & "
su - redis -c "/usr/local/redis/bin/redis-server /etc/redis7003.conf --loadmodule /usr/local/redis/bin/redisearch.so 2>&1 >/dev/null & "
su - redis -c "/usr/local/redis/bin/redis-server /etc/redis7004.conf --loadmodule /usr/local/redis/bin/redisearch.so 2>&1 >/dev/null & "
su - redis -c "/usr/local/redis/bin/redis-server /etc/redis7005.conf --loadmodule /usr/local/redis/bin/redisearch.so 2>&1 >/dev/null & "
su - redis -c "/usr/local/redis/bin/redis-server /etc/redis7006.conf --loadmodule /usr/local/redis/bin/redisearch.so 2>&1 >/dev/null & "
# 所有节点启动完毕
root@ubuntu-x64_02:/opt/RediSearch# ps -ef |grep redis
redis 1949 1 0 22:19 ? 00:00:00 /usr/local/redis/bin/redis-server 192.168.88.12:7001 [cluster]
redis 1960 1 0 22:20 ? 00:00:00 /usr/local/redis/bin/redis-server 192.168.88.12:7002 [cluster]
redis 1971 1 0 22:20 ? 00:00:00 /usr/local/redis/bin/redis-server 192.168.88.12:7003 [cluster]
redis 1982 1 0 22:20 ? 00:00:00 /usr/local/redis/bin/redis-server 192.168.88.12:7004 [cluster]
redis 1986 1 0 22:20 ? 00:00:00 /usr/local/redis/bin/redis-server 192.168.88.12:7005 [cluster]
redis 1995 1 0 22:20 ? 00:00:00 /usr/local/redis/bin/redis-server 192.168.88.12:7006 [cluster]
root 2017 1778 0 22:20 pts/0 00:00:00 grep --color=auto redis
# 集群 正常
192.168.88.12:7001> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:9
cluster_my_epoch:7
cluster_stats_messages_ping_sent:220
cluster_stats_messages_pong_sent:211
cluster_stats_messages_sent:431
cluster_stats_messages_ping_received:211
cluster_stats_messages_pong_received:217
cluster_stats_messages_received:428
# 节点状态
192.168.88.12:7001> cluster nodes
17018ec96fc120ab7f825667bbe06659c66b58e5 192.168.88.12:7003@17003 slave d280ca1005ebe99a6ec0151c6d94a6df4ac5d760 0 1657118079000 9 connected
0f8cd36ed85993fb1be158880da6569af26e4d11 192.168.88.12:7005@17005 master - 0 1657118079542 8 connected 5461-10922
695367779b622b28d336dbd18f1b7e97cbb150ed 192.168.88.12:7004@17004 master - 0 1657118079843 7 connected 0-5460
d280ca1005ebe99a6ec0151c6d94a6df4ac5d760 192.168.88.12:7006@17006 master - 0 1657118079000 9 connected 10923-16383
3a6618836169c30c709085fdde22d0a518e190c6 192.168.88.12:7001@17001 myself,slave 695367779b622b28d336dbd18f1b7e97cbb150ed 0 1657118078000 7 connected
6aa10de17bd3fca80515385728d688d6b3837616 192.168.88.12:7002@17002 slave 0f8cd36ed85993fb1be158880da6569af26e4d11 0 1657118079000 8 connected
Creating an index with fields and weights (default weight is 1.0)
# Creating an index
192.168.88.12:7006> FT.CREATE myIdx ON HASH PREFIX 1 doc: SCHEMA title TEXT WEIGHT 5.0 body TEXT url TEXT
OK
192.168.88.12:7006>
# Adding documents to the index
192.168.88.12:7006> hset doc:1 title "hello world" body "lorem ipsum" url "http://redis.io"
-> Redirected to slot [5105] located at 192.168.88.12:7004
(integer) 0
192.168.88.12:7004>
# 搜索索引
192.168.88.12:7004> FT.SEARCH myIdx "hello world" LIMIT 0 10
-> Redirected to slot [13033] located at 192.168.88.12:7006
1) (integer) 0
192.168.88.12:7006>
在集群模式下可以成功加载readsearch.so模块,但搜索不会自动分发,导致创建好了索引,搜索不到文档,这个需要企业版支持,文档说了reresearch有一个分布式集群版本,可以扩展到数百台服务器上的数十亿个文档。 目前,分布式reresearch已经成为Redis企业云和Redis企业软件的一部分。
如果是社区版的 Redis 集群怎么支持readsearch呢? 看文档发现可以在编译指定OSS版本。 参考如下文档 :
安装详细文档参考如下:
https://redis.io/docs/stack/search/development/
make build # compile and link
COORD=1|oss|rlec # build coordinator (1|oss: Open Source, rlec: Enterprise)
在编译时指定为 OSS 版本
make build COORD=oss will build OSS RediSearch Coordinator
RSCoodinator版本参考下面文档
https://github.com/RediSearch/RSCoordinator
## 安装 OSS 2.2.9 版本,和最新的企业版本保持一致!!!!
git clone -b v2.2.9 --recursive https://github.com/RediSearch/RediSearch.git
make setup
make build COORD=oss
# 编译完成后把 module-oss.so 复制到 bin 目录下面
redisearch.so # 是主从的
module-oss.so # 是集群的
# 配置文件加上,所有节点都加上
loadmodule /usr/local/redis/bin/module-oss.so OSS_GLOBAL_PASSWORD <redis密码>
# 查看版本
192.168.88.12:7004> info Modules
# Modules
module:name=search,ver=20209,api=1,filters=0,usedby=[],using=[],options=[]
RSCoordinator是一个附加模块,支持通过reresearch进行可伸缩的分布式搜索。
使用OSS版本可以在社区版集群模式下分发搜索。
文章浏览阅读2k次。2.1 如果内核配置和代码修改正确,设备启动后,ifconfig -a可以看到usb0节点。1.1按照芯片data sheet修改kernel代码,添加PID和VID。概要:基于rv1126平台调试SIMCOM 7670C 4G模块。1.2.3,使能USB network,配置rndis host。发送如下指令,如果看到回复OK,就证明4G模块与主控通讯正常。此处根据不同的芯片按照其datasheet进行修改。2.2 用AT指令测试4G模块与主控是否通讯正常。1,内核配置及内核代码修改。_a7670c
文章浏览阅读1.5k次。参考网址:https://forum.qiime2.org/t/qiime2-chinese-manual/838http://qiime.org/install/install.html 安装好qiime后,脚本的运行必须在qiime环境下输入:source activate qiime1 ..._qiime1安装包下载
文章浏览阅读850次。相信win系统的小伙伴都用了几个月的Photoshop 2022版了吧!但Mac端的学习版一直没来,很多Mac用户都直接转正版去了!用Mac的小伙伴应该都在担忧adobe 2022 国外大神还破解不,毕竟win端都已经用了好几个月了,不过该来的还是会来的。昨日,国外大神终于就带来了Mac版Photoshop 2022,现在使用Mac的小伙伴也可以一直体验了。Mac版Photoshop 2022Photoshop 2022这款神级软件可谓是人尽皆知了 ,相信大家都不陌生,是图像..._ps2022macair能使用吗
文章浏览阅读1w次。使用antd这个UI组件确实很好用,但是他属于面向国际的,所以在一些特定的组件需要使用国际化文字上的转变;可以看到提示的文字都是英文,包括鼠标停留事件也是英文的,那么在你的代码中这么写就可以了import React from 'react';import {DatePicker } from 'antd';//引入国际化设置(中文)import locale from 'antd/l..._antd日期选择框国际化
文章浏览阅读96次。1. 总结串行通信,并行通信,波特率,全双工,半双工,单工等通信概念。
文章浏览阅读6.3k次,点赞5次,收藏51次。参考链接:北邮夺冠CVPR 2018 DeepGlobe比赛,他们是这样做卫星图像识别的论文链接:D-LinkNet: LinkNet with Pretrained Encoder and Dilated Convolution for High Resolution Satellite Imagery Road ExtractionGithub地址 Python2.7 pytorc..._d-linknet
文章浏览阅读1.1w次,点赞54次,收藏275次。首发于知乎最近在做基于EtherCAT的项目,看了一些网上的博客,感觉写的都比较松散。虽然,自己也是才开始学习,希望能把这段时间学到的东西总结一下。1.EtherCAT简介EtherCAT是由德国BECKHOFF自动化公司于2003年提出的实时工业以太网技术。它具有高速和高数据有效率的特点,支持多种设备连接拓扑结构。其从站节点使用专用的控制芯片,主站使用标准的以太网控制器。Et..._ethercat demo
文章浏览阅读2k次。QT简介及QT环境搭建文章目录QT简介及QT环境搭建一、QT简介1. 什么是QT?2. QT的发展史3. QT支持的平台4. QT的优点5. QT开发工具二、QT环境搭建(CentOS7)一、QT简介1. 什么是QT?Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架 它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向..._qt环境
文章浏览阅读188次。win10 设置任务栏时钟显示到秒_win10任务栏显示秒数
文章浏览阅读124次。本书是一本讲解.NET技术的书籍,目标读者群也是在.NET框架(.NET Framework)下进行开发的程序员,因此我们无法回避的问题就是:什么是.NET框架?它包含了哪些内容?为开发程序提供了哪些支持?很多朋友对这类个问题的第一反应可能是.NET框架所提供的庞大类库及编写代码所采用的C#语言,实际上远不止这些。要描述.NET框架,自然会遇到与其相关的一系列专业的技术术语和缩写,相信大家已经..._目标框架 目标操作系统版本
文章浏览阅读2.2k次,点赞3次,收藏11次。在这之前的我已经介绍过生产者消费者模型,不懂的可以下跳地址: http://blog.csdn.net/quinn0918/article/details/728259921、环形缓冲区缓冲区的好处,就是空间换时间和协调快慢线程。缓冲区可以用很多设计法,这里说一下环形缓冲区的几种设计方案,可以看成是几种环形缓冲区的模式。设计环形缓冲区涉及到几个点,一是超出缓冲区大小的的索引如何处理,二是如何表示缓_并发环状加锁
文章浏览阅读226次。在全世界球迷的瞩目下,2018世界杯在上周激情上演,相信接下来的一个月时间里无数球迷又将守在电视前为自己喜欢的球队摇旗呐喊。当然,在移动互联网发达的今天,即使不在电视前,..._移动咪咕 张云天