chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

Redis官方搜索引擎來(lái)了,性能炸裂!

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

掃碼添加小助手

加入工程師交流群

RediSearch 簡(jiǎn)介

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

要使用 RediSearch 的功能,我們需要要先聲明一個(gè) index(類似于 Elasticsearch 的索引)。然后就可以使用 RediSearch 的查詢語(yǔ)言來(lái)查詢?cè)撍饕碌臄?shù)據(jù)。

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

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

對(duì)比 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)建測(cè)試

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

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

查詢性能測(cè)試

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

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

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

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

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

RediSearch 安裝

對(duì)于目前最新的 RediSearch 2.0 版本來(lái)說(shuō),官方推薦直接使用 redis-stack-server 鏡像進(jìn)行進(jìn)行部署,也比較簡(jiǎn)單,

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

設(shè)置登錄密碼

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

通過(guò) 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:表示支持中文語(yǔ)言分詞

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

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

hsetgoods:1001goodsName小米手機(jī)
hsetgoods:1002goodsName華為手機(jī)

FT.SEARCH 查詢索引

>FT.SEARCHidx:goods1"手機(jī)"
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 刪除指定名稱索引,不會(huì)刪除 hash 類型的源數(shù)據(jù)

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

Java 使用 RediSearch

對(duì)于 Java 項(xiàng)目直接選用 Jedis4.0 以上版本就可以使用 RediSearch 提供的搜索功能,Jedis 在 4.0 以上版本自動(dòng)支持 RediSearch,編寫(xiě) Jedis 連接 RedisSearch 測(cè)試用例,用 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è)置分頁(yè)
q.limit((int)page.offset(),(int)page.getSize());
//返回查詢結(jié)果
returnclient.ftSearch(goodsIdxName,q);
}

最后聊兩句

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

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

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





審核編輯:劉清

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

    關(guān)注

    7

    文章

    322

    瀏覽量

    22788
  • Hash
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    13711
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    394

    瀏覽量

    12248

原文標(biāo)題:換掉ES!Redis官方搜索引擎來(lái)了,性能炸裂!

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Redis應(yīng)用監(jiān)控指標(biāo)大盤(pán)點(diǎn)

    Redis作為高性能內(nèi)存數(shù)據(jù)庫(kù),廣泛應(yīng)用于緩存、會(huì)話存儲(chǔ)、消息隊(duì)列等場(chǎng)景。對(duì)Redis運(yùn)行狀況的有效監(jiān)控,是保障業(yè)務(wù)穩(wěn)定性的關(guān)鍵。本文的目的是幫助運(yùn)維工程師建立完整的Redis監(jiān)控知識(shí)
    的頭像 發(fā)表于 04-09 10:07 ?138次閱讀

    OpenAI要求谷歌將ChatGPT列為默認(rèn)搜索引擎之一

    行業(yè)芯事行業(yè)資訊
    電子發(fā)燒友網(wǎng)官方
    發(fā)布于 :2026年03月24日 13:37:11

    Oracle和NVIDIA合作加速向量搜索和企業(yè)數(shù)據(jù)處理

    旨在支持 NVIDIA GPU 和 NVIDIA cuVS 開(kāi)源庫(kù),用于向量搜索索引生成。本公告基于在 Oracle AI World 2025 大會(huì)上推出的 Oracle AI Database 26ai 和 Oracle Private AI Services Co
    的頭像 發(fā)表于 03-23 15:26 ?394次閱讀

    KIOXIA單服務(wù)器實(shí)現(xiàn)48億高維向量搜索數(shù)據(jù)庫(kù),借助GPU實(shí)現(xiàn)索引構(gòu)建時(shí)間加速7.8倍

    通過(guò)NVIDIA cuVS利用GPU加速,顯著縮短索引構(gòu)建時(shí)間的成果。這兩項(xiàng)成果標(biāo)志著檢索增強(qiáng)生成(RAG)搜索解決方案取得了重大進(jìn)展。目前公司正持續(xù)開(kāi)發(fā),以支持超過(guò)48億向量的更大規(guī)模部署。 大規(guī)模
    的頭像 發(fā)表于 03-18 16:57 ?1037次閱讀

    邁富時(shí)GEO服務(wù):技術(shù)驅(qū)動(dòng)AI搜索時(shí)代的企業(yè)增長(zhǎng)新引擎

    導(dǎo)語(yǔ): 隨著DeepSeek、豆包、文心一言等生成式AI搜索引擎的快速普及,用戶獲取信息的方式正從傳統(tǒng)"鏈接點(diǎn)擊"轉(zhuǎn)向"AI直接對(duì)話"。在這場(chǎng)深刻的信息檢索范式變革中,企業(yè)如何讓品牌內(nèi)容被AI系統(tǒng)
    的頭像 發(fā)表于 01-17 21:20 ?436次閱讀

    【產(chǎn)品應(yīng)用】?jī)?chǔ)能網(wǎng)關(guān)EM-1000與EM-1000G的Redis性能對(duì)比

    視頻推薦隨著儲(chǔ)能控制系統(tǒng)智能化發(fā)展,對(duì)實(shí)時(shí)處理和高速緩存需求提升。本測(cè)試對(duì)EM-1000與EM-1000G的Redis性能進(jìn)行對(duì)比,評(píng)估其在吞吐、響應(yīng)與穩(wěn)定性上的差異,為客戶提供精準(zhǔn)硬件選型依據(jù)
    的頭像 發(fā)表于 12-02 11:39 ?456次閱讀
    【產(chǎn)品應(yīng)用】?jī)?chǔ)能網(wǎng)關(guān)EM-1000與EM-1000G的<b class='flag-5'>Redis</b><b class='flag-5'>性能</b>對(duì)比

    5分鐘了解SEO優(yōu)化服務(wù)器對(duì)網(wǎng)站加載速度的影響

    一個(gè)為SEO優(yōu)化過(guò)的服務(wù)器,能顯著提升網(wǎng)站性能,從而在搜索引擎排名中占據(jù)有利位置。
    的頭像 發(fā)表于 12-02 10:27 ?424次閱讀

    根據(jù)標(biāo)題獲取商品鏈接評(píng)論接口的技術(shù)實(shí)現(xiàn)

    ; B(搜索引擎API調(diào)用) B --?> C{鏈接匹配度驗(yàn)證} C --?>|匹配成功| D[獲取商品ID] C --?>|匹配失敗| E[人工干預(yù)校準(zhǔn)] D --?> F
    的頭像 發(fā)表于 10-20 16:03 ?781次閱讀
    根據(jù)標(biāo)題獲取商品鏈接評(píng)論接口的技術(shù)實(shí)現(xiàn)

    Redis集群部署與性能優(yōu)化實(shí)戰(zhàn)

    Redis作為高性能的內(nèi)存數(shù)據(jù)庫(kù),在現(xiàn)代互聯(lián)網(wǎng)架構(gòu)中扮演著關(guān)鍵角色。作為運(yùn)維工程師,掌握Redis的部署、配置和優(yōu)化技能至關(guān)重要。本文將從實(shí)戰(zhàn)角度出發(fā),詳細(xì)介紹Redis集群的搭建、
    的頭像 發(fā)表于 07-08 17:56 ?1004次閱讀

    【經(jīng)驗(yàn)分享】在Omni3576上編譯Redis-8.0.2源碼,并安裝及性能測(cè)試

    本文首先介紹Redis是什么,然后介紹如何在Omni3576上編譯Redis-8.0.2源碼,以及從源碼編譯、安裝Redis,最后介紹如何在Omni3576上運(yùn)行Redis
    的頭像 發(fā)表于 06-05 08:05 ?1072次閱讀
    【經(jīng)驗(yàn)分享】在Omni3576上編譯<b class='flag-5'>Redis</b>-8.0.2源碼,并安裝及<b class='flag-5'>性能</b>測(cè)試

    地平線余凱談AI時(shí)代產(chǎn)品方法論

    互聯(lián)網(wǎng)時(shí)代,商業(yè)邏輯始終圍繞“連接”與“理解人”展開(kāi)。從搜索引擎、社交平臺(tái)再到短視頻應(yīng)用,都在通過(guò)用戶行為數(shù)據(jù)揣摩人類偏好,優(yōu)化服務(wù)體驗(yàn)。
    的頭像 發(fā)表于 06-03 11:44 ?1048次閱讀

    【幸狐Omni3576邊緣計(jì)算套件試用體驗(yàn)】Redis最新8.0.2版本源碼安裝及性能測(cè)試

    本文首先介紹Redis是什么,然后介紹如何在Omni3576上編譯Redis-8.0.2源碼,以及從源碼編譯、安裝Redis,最后介紹如何在Omni3576上運(yùn)行Redis
    發(fā)表于 06-03 01:28

    Redis 8 向量搜索實(shí)測(cè):輕松擴(kuò)展至 10 億向量

    艾體寶Redis 8 向量搜索實(shí)測(cè)輕松支持 10 億向量,仍保持低延遲與高吞吐。中位延遲僅200毫秒,90%精確度;處理50并發(fā)搜索請(qǐng)求中位延遲僅1.3秒,95%精確度。
    的頭像 發(fā)表于 05-13 14:00 ?889次閱讀
    <b class='flag-5'>Redis</b> 8 向量<b class='flag-5'>搜索</b>實(shí)測(cè):輕松擴(kuò)展至 10 億向量

    Redis 再次開(kāi)源!

    “ ?Redis 現(xiàn)已采用 AGPLv3 開(kāi)源許可證。? ” Redis CEO 的 Blog 以下是 Redis CEO Rowan Trollope 的 Blog: 像 AWS 和 GCP 這樣
    的頭像 發(fā)表于 05-06 18:26 ?1053次閱讀

    RAKsmart服務(wù)器SEO優(yōu)化優(yōu)勢(shì)分析

    在RAKsmart服務(wù)器上搭建SEO網(wǎng)站,可以借助其基礎(chǔ)設(shè)施和服務(wù)特性,從技術(shù)層面優(yōu)化搜索引擎排名。以下是具體優(yōu)勢(shì)及分析,主機(jī)推薦小編為您整理發(fā)布RAKsmart服務(wù)器SEO優(yōu)化優(yōu)勢(shì)分析。
    的頭像 發(fā)表于 04-22 10:12 ?768次閱讀