99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Redis官方搜索引擎來了,性能炸裂!

jf_ro2CN3Fa ? 來源:waynblog ? 2024-02-21 10:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

RediSearch 簡介

RediSearch 是一個 Redis 模塊,為 Redis 提供查詢、二級索引和全文搜索功能。

要使用 RediSearch 的功能,我們需要要先聲明一個 index(類似于 Elasticsearch 的索引)。然后就可以使用 RediSearch 的查詢語言來查詢該索引下的數(shù)據(jù)。

RediSearch 內(nèi)部使用壓縮的倒排索引,所以可以用較低的內(nèi)存占用來實現(xiàn)索引的快速構(gòu)建。

目前 RediSearch 最新版支持的查詢功能也比較豐富了,除了基本的文本分詞還支持聚合統(tǒng)計、停用詞、同義詞、拼寫檢查、結(jié)果排序、標簽查詢、向量相似度查詢以及中文分詞等。

對比 Elasticsearch

基本硬件

f591b788-d059-11ee-a297-92fbcf53809c.png

數(shù)據(jù)源

f597dbd6-d059-11ee-a297-92fbcf53809c.png

RediSearch 配置

f59d903a-d059-11ee-a297-92fbcf53809c.png

Elasticsearch 配置

f5a6d76c-d059-11ee-a297-92fbcf53809c.png

版本

f5af12c4-d059-11ee-a297-92fbcf53809c.png

索引構(gòu)建測試

在官方提供的索引構(gòu)建測試中,RediSearch 用 221 秒的速度超過了 Elasticsearch 的 349 秒,領(lǐng)先 58%,

f5b4db00-d059-11ee-a297-92fbcf53809c.png

查詢性能測試

通過數(shù)據(jù)集導入索引數(shù)據(jù)后,官方使用運行在專用負載生成器服務(wù)器上的 32 個客戶端啟動了兩個詞的搜索查詢。

如下圖所示,RediSearch 的吞吐量達到了 12.5K ops/sec,而 Elasticsearch 的吞吐量只有了 3.1K ops/sec,快了 4 倍。此外 RediSearch 的延遲稍好一些,平均為 8 毫秒,而 Elasticsearch 為 10 毫秒。(ops/sec 每秒操作數(shù))

f5c08bc6-d059-11ee-a297-92fbcf53809c.png

由此可見,RediSearch 在性能上對比 RediSearch 有比較大的優(yōu)勢。

目前 RediSearch 已經(jīng)更新到 2.0+ 版本,根據(jù)官方對于 RediSearch 2.0 版本介紹,與 RediSearch 1.6 相比,吞吐量和延遲相關(guān)的指標都提高了 2.4 倍。

RediSearch 安裝

對于目前最新的 RediSearch 2.0 版本來說,官方推薦直接使用 redis-stack-server 鏡像進行進行部署,也比較簡單,

dockerrun-d--nameredis-stack-server-p6379:6379redis/redis-stack-server:latest

設(shè)置登錄密碼

//設(shè)置登錄密碼
dockerrun-eREDIS_ARGS="--requirepassredis-stack"redis/redis-stack:latest

通過 redis-cli 連接查看 RediSearch 是否安裝了 search 模塊,

redis-cli-hlocalhost

>MODULElist
...
3)1)"name"
2)"search"
3)"ver"
4)"20809"
5)"path"
6)"/opt/redis-stack/lib/redisearch.so"
7)"args"
8)1)"MAXSEARCHRESULTS"
2)"10000"
3)"MAXAGGREGATERESULTS"
4)"10000"
...

索引操作

FT.CREATE 創(chuàng)建索引命令

>FT.CREATEidx:goodsonhashprefix1"goods:"languagechineseschemagoodsNametextsortable
"OK"

FT.CREATE:創(chuàng)建索引命令

idx:goods:索引名稱

on hash:索引關(guān)聯(lián)的數(shù)據(jù)類型,這里指定索引基于 hash 類型的源數(shù)據(jù)構(gòu)建

prefix 1 "goods:":表示索引關(guān)聯(lián)的 hash 類型源數(shù)據(jù)前綴是 goods:

language chinese:表示支持中文語言分詞

schema goodsName text sortable:表示字段定義,goodsName 表示元數(shù)據(jù)屬性名,text 表示字段類型 sortable 表示該字段可以用于排序

添加索引時,直接使用 hset 命令添加一個 key 前綴是 "goods:" 的源數(shù)據(jù)。如下,

hsetgoods:1001goodsName小米手機
hsetgoods:1002goodsName華為手機

FT.SEARCH 查詢索引

>FT.SEARCHidx:goods1"手機"
1)"2"
2)"goods:1001"
3)1)"goodsName"
2)"xe5xb0x8fxe7xb1xb3xe6x89x8bxe6x9cxba"
4)"goods:1002"
5)1)"goodsName"
2)"xe5x8dx8exe4xb8xbaxe6x89x8bxe6x9cxba"

FT.INFO 查詢指定名稱索引信息

>FT.INFOidx:goods
1)"index_name"
2)"idx:goods1"
3)"index_options"
4)(emptylistorset)
5)"index_definition"
6)1)"key_type"
2)"HASH"
3)"prefixes"
4)1)"goods:"
5)"default_language"
6)"chinese"
7)"default_score"
8)"1"
7)"attributes"
8)1)1)"identifier"
2)"goodsName"
3)"attribute"
4)"goodsName"
5)"type"
6)"TEXT"
7)"WEIGHT"
8)"1"
9)"SORTABLE"
...

FT.INFO 查詢指定名稱的索引信息

FT.DROPINDEX 刪除索引名稱

>FT.DROPINDEXidx:goods1
"OK"

FT.DROPINDEX 刪除指定名稱索引,不會刪除 hash 類型的源數(shù)據(jù)

如果需要刪除索引數(shù)據(jù),直接使用 del 命令刪除索引關(guān)聯(lián)的源數(shù)據(jù)即可。

Java 使用 RediSearch

對于 Java 項目直接選用 Jedis4.0 以上版本就可以使用 RediSearch 提供的搜索功能,Jedis 在 4.0 以上版本自動支持 RediSearch,編寫 Jedis 連接 RedisSearch 測試用例,用 RedisSearch 命令創(chuàng)建如下,

Jedis 創(chuàng)建 RediSearch 客戶端

@Bean
publicUnifiedJedisunifiedJedis(GenericObjectPoolConfigjedisPoolConfig){
UnifiedJedisclient;
if(StringUtils.isNotEmpty(password)){
client=newJedisPooled(jedisPoolConfig,host,port,timeout,password,database);
}else{
client=newJedisPooled(jedisPoolConfig,host,port,timeout,null,database);
}
returnclient;
}

Jedis 創(chuàng)建索引

Schemaschema=newSchema()
.addSortableTextField("goodsName",1.0)
.addSortableTagField("tag","|");
IndexDefinitionrule=newIndexDefinition(IndexDefinition.Type.HASH)
.setPrefixes("idx:goods")
.setLanguage("chinese");#設(shè)置支持中文分詞
client.ftCreate(idxName,
IndexOptions.defaultOptions().setDefinition(rule),
schema);

Jedis 添加索引源數(shù)據(jù)

publicbooleanaddGoodsIndex(StringkeyPrefix,Goodsgoods){
Maphash=MyBeanUtil.toMap(goods);
hash.put("_language","chinese");
client.hset("idx:goods"+goods.getGoodsId(),MyBeanUtil.toMap(goods));
returntrue;
}

Jedis 中文查詢

publicSearchResultsearch(StringgoodsIdxName,SearchObjVOsearchObjVO,Pagepage){
//查詢關(guān)鍵字
Stringkeyword=searchObjVO.getKeyword();
StringqueryKey=String.format("@goodsName:(%s)",keyword);
Queryq=newQuery(queryKey);
Stringsort=searchObjVO.getSidx();
Stringorder=searchObjVO.getOrder();
//查詢是否排序
if(StringUtils.isNotBlank(sort)){
q.setSortBy(sort,Constants.SORT_ASC.equals(order));

}
//設(shè)置中文分詞查詢
q.setLanguage("chinese");
//設(shè)置分頁
q.limit((int)page.offset(),(int)page.getSize());
//返回查詢結(jié)果
returnclient.ftSearch(goodsIdxName,q);
}

最后聊兩句

RediSearch 是這幾年新出的一個全文搜索引擎,借助于 Redis 的成功,RediSearch 一出場就獲得了較高的關(guān)注度。

目前來看,我個人使用 RediSearch 作為項目的全文搜索引擎已經(jīng)夠用了,它有易于安裝、索引占用內(nèi)存低、查詢速度快等許多優(yōu)點。不過在對 Redis 集群的支持上,RediSearch 目前只針對 Redis 企業(yè)版有解決方案,開源版還沒有,這一點需要告訴大家。

如果想要在生產(chǎn)環(huán)境大規(guī)模使用,我還是不太建議的。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    322

    瀏覽量

    21901
  • Hash
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    13484
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    387

    瀏覽量

    11446

原文標題:換掉ES!Redis官方搜索引擎來了,性能炸裂!

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    微軟面臨法國反壟斷機構(gòu)調(diào)查

    據(jù)媒體報道,微軟目前正在接受法國反壟斷機構(gòu)的深入調(diào)查。此次調(diào)查的核心關(guān)注點在于,微軟是否在搜索引擎聯(lián)盟市場中濫用其市場支配地位。 知情人士透露,法國監(jiān)管機構(gòu)正在仔細評估微軟的行為,特別是其是否向那些
    的頭像 發(fā)表于 02-11 10:57 ?592次閱讀

    LZO Data Compression,高性能LZO無損數(shù)據(jù)壓縮加速器介紹,F(xiàn)PGA&ASIC

    的AXI-Stream數(shù)據(jù)總線(128-bit數(shù)據(jù)寬度) 經(jīng)典性能指標:1.1Gbps壓縮速率@1個搜索引擎@200MHz內(nèi)核時鐘2.16Gbps壓縮速率@16個搜索引擎@200MHz內(nèi)核時鐘3.32Gbps壓縮
    發(fā)表于 01-24 23:53

    javascript:void(0) 是否影響SEO優(yōu)化

    使用 javascript:void(0) 確實可能對SEO優(yōu)化產(chǎn)生負面影響 。以下是關(guān)于 javascript:void(0) 對SEO影響的具體分析: 搜索引擎爬蟲的理解問題 搜索引擎爬蟲(如
    的頭像 發(fā)表于 12-31 16:08 ?566次閱讀

    HTTP 協(xié)議對于SEO優(yōu)化的影響

    搜索引擎優(yōu)化(SEO)是提高網(wǎng)站在搜索引擎中的可見性和排名的過程。HTTP協(xié)議作為互聯(lián)網(wǎng)通信的基礎(chǔ),對SEO有著深遠的影響。 1. HTTP狀態(tài)碼 HTTP狀態(tài)碼是服務(wù)器響應(yīng)客戶端請求的結(jié)果。這些
    的頭像 發(fā)表于 12-30 09:29 ?605次閱讀

    蘋果為谷歌支付數(shù)十億美元辯護,參與搜索案反壟斷審判

    近日,蘋果公司已正式要求參與谷歌即將在美國舉行的在線搜索反壟斷審判,此舉旨在為其與谷歌之間的收入分成協(xié)議進行辯護。該協(xié)議使得谷歌成為Safari瀏覽器的默認搜索引擎,而谷歌每年因此向蘋果支付數(shù)十
    的頭像 發(fā)表于 12-26 10:41 ?503次閱讀

    SSR的優(yōu)勢和劣勢分析

    的SEO效果,有助于提高搜索引擎排名。搜索引擎爬蟲可以直接抓取到渲染好的頁面內(nèi)容,相比客戶端渲染(CSR)更利于搜索引擎索引和排名。 首屏加載性能
    的頭像 發(fā)表于 11-18 11:27 ?1766次閱讀

    阿里國際推出全球首個B2B AI搜索引擎Accio

    近日,在歐洲科技峰會Web Summit上,阿里國際正式推出了全球首個B2B領(lǐng)域的AI搜索引擎——Accio。這一創(chuàng)新產(chǎn)品面向全球商家開放,標志著阿里國際正式入局當前備受矚目的AI Search賽道。
    的頭像 發(fā)表于 11-15 16:53 ?1210次閱讀

    阿里國際推出B2B領(lǐng)域AI搜索引擎Accio

    近日,阿里國際宣布正式進軍AI搜索領(lǐng)域,并面向全球商家推出了首個B2B領(lǐng)域的AI搜索引擎——Accio。這一創(chuàng)新產(chǎn)品的推出,標志著阿里國際在電子商務(wù)和人工智能技術(shù)結(jié)合方面邁出了重要一步。 Accio
    的頭像 發(fā)表于 11-14 11:47 ?898次閱讀

    租用多ip云服務(wù)器可以帶來哪些好處?應(yīng)用場景有哪些?

    租用多ip云服務(wù)器可以為用戶帶來多種好處和應(yīng)用場景,主要包括: 1、SEO優(yōu)化: 搜索引擎優(yōu)化(SEO)通常推薦使用多個ip地址來托管不同的網(wǎng)站,以減少網(wǎng)站之間的潛在負面影響,提高搜索引擎索引效率
    的頭像 發(fā)表于 11-04 11:33 ?490次閱讀

    OpenAI推出ChatGPT搜索功能

    查找網(wǎng)絡(luò)信息時,往往需要通過傳統(tǒng)的搜索引擎進行檢索,然后從中篩選出有價值的內(nèi)容。而現(xiàn)在,有了ChatGPT搜索,用戶可以更加便捷地獲取所需信息。 OpenAI表示,ChatGPT搜索不僅能夠幫助用戶像在網(wǎng)絡(luò)上一樣
    的頭像 發(fā)表于 11-04 10:34 ?682次閱讀

    Meta開發(fā)新搜索引擎,減少對谷歌和必應(yīng)的依賴

    近日,Meta正在積極進軍人工智能領(lǐng)域,并試圖跟上OpenAI的發(fā)展步伐。為實現(xiàn)這一目標,Meta正在開發(fā)一款全新的搜索引擎,該搜索引擎具備網(wǎng)絡(luò)爬蟲功能,能夠為用戶提供有關(guān)時事的對話答案,而這些答案
    的頭像 發(fā)表于 10-29 11:49 ?802次閱讀

    月訪問量超2億,增速113%!360AI搜索成為全球增速最快的AI搜索引擎

    與傳統(tǒng)搜索引擎不同,作為AI原生搜索引擎的360AI搜索基于公開網(wǎng)絡(luò)、知識庫、大模型三大支柱。借助首創(chuàng)的 CoE 技術(shù)架構(gòu),360AI搜索整合了國內(nèi)主流的16家廠商51款大模型,支持用
    的頭像 發(fā)表于 09-09 13:44 ?876次閱讀
    月訪問量超2億,增速113%!360AI<b class='flag-5'>搜索</b>成為全球增速最快的AI<b class='flag-5'>搜索引擎</b>

    恒訊科技分析:香港站群服務(wù)器為什么要做偽靜態(tài)處理呢?

    提高搜索引擎優(yōu)化(SEO)效果:偽靜態(tài)處理可以使得動態(tài)網(wǎng)頁URL看起來像是靜態(tài)網(wǎng)頁的URL,這有助于搜索引擎更好地索引網(wǎng)站內(nèi)容。搜索引擎通常偏好靜態(tài)網(wǎng)頁,因為它們認為靜態(tài)網(wǎng)頁更穩(wěn)定、內(nèi)
    的頭像 發(fā)表于 07-31 12:49 ?525次閱讀

    OpenAI推出SearchGPT原型,正式向Google搜索引擎發(fā)起挑戰(zhàn)

    在人工智能領(lǐng)域的持續(xù)探索中,OpenAI 邁出了重大一步,發(fā)布了其最新的 SearchGPT 原型,直接瞄準了 Google 的核心業(yè)務(wù)——搜索引擎。這一舉動不僅標志著 OpenAI 在技術(shù)上的又一次飛躍,也預(yù)示著搜索引擎市場即將迎來一場前所未有的變革。
    的頭像 發(fā)表于 07-26 15:11 ?825次閱讀

    微軟計劃在搜索引擎Bing中引入AI摘要功能

    近期,科技界傳來新動向,微軟緊隨百度與谷歌的步伐,宣布計劃在其搜索引擎Bing中引入先進的AI摘要功能,旨在為用戶帶來更加智能、豐富的搜索體驗。
    的頭像 發(fā)表于 07-26 14:23 ?782次閱讀