精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Redis 也支持全文搜索?這也太強了

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

在 2021 年我就了解到 RediSearch 這個項目,并已經把它用于我的開源項目 newbee-mall-pro 中。

就我的使用體驗來說,簡單場景下,用來平替 Elasticsearch 的使用場景已經足夠。像是 Elasticsearch 中常用中文分詞插件可以用 RediSearch 替代,但是拼音轉中文插件在 RediSearch 中還沒有功能替代,只能通過個人手段處理。

在 newbee-mall-pro 項目中,拼音搜索我是通過先將中文轉拼音后作為拼音字段存入 Redis 中,再通過 RediSearch 查詢拼音字段來實現的。

RediSearch 對于我來說相比 Elasticsearch 的最大優點就是 內存占用非常低,查詢性能也足夠高??。

在我的低配 2 核 4g 內存的服務器上,通過官方提供的 Redis Stack 鏡像部署 Redis 以及自帶模塊 RediSearch 后,內存占用才不到 100m。

相比部署一個 Elasticsearch 起碼需要 1g 內存來說,我更愿意部署 RediSearch。本文大綱如下,

圖片圖片

RediSearch 簡介

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

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

RediSearch 內部使用壓縮的倒排索引,所以可以用較低的內存占用來實現索引的快速構建。

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

對比 Elasticsearch

基本硬件

圖片

數據源

圖片

RediSearch 配置

圖片

Elasticsearch 配置

圖片

版本

圖片

索引構建測試

在官方提供的索引構建測試中,RediSearch 用 221 秒的速度超過了 Elasticsearch 的 349 秒,領先 58%,

圖片

查詢性能測試

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

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

圖片

由此可見,RediSearch 在性能上對比 RediSearch 有比較大的優勢。


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

RediSearch 安裝

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

docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:latest

設置登錄

// 設置登錄
docker run -e REDIS_ARGS="--requirepass redis-stack" redis/redis-stack:latest

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

redis-cli -h localhost
module list
> MODULE list
...
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 創建索引命令

> FT.CREATE idx:goods on hash prefix 1 "goods:" language chinese schema goodsName text sortable
"OK"
  • FT.CREATE:創建索引命令
  • idx:goods:索引名稱
  • on hash:索引關聯的數據類型,這里指定索引基于 hash 類型的源數據構建
  • prefix 1 "goods:":表示索引關聯的 hash 類型源數據前綴是 goods:
  • language chinese:表示支持中文語言分詞
  • schema goodsName text sortable:表示字段定義,goodsName 表示元數據屬性名,text 表示字段類型 sortable 表示該字段可以用于排序

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

hset goods:1001 goodsName 小米手機
hset goods:1002 goodsName 華為手機

FT.SEARCH 查詢索引

> FT.SEARCH idx:goods1 "手機"
1) "2"
2) "goods:1001"
3) 1) "goodsName"
   2) "\xe5\xb0\x8f\xe7\xb1\xb3\xe6\x89\x8b\xe6\x9c\xba"
4) "goods:1002"
5) 1) "goodsName"
   2) "\xe5\x8d\x8e\xe4\xb8\xba\xe6\x89\x8b\xe6\x9c\xba"

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

> FT.INFO idx:goods
1) "index_name"
2) "idx:goods1"
3) "index_options"
4) (empty list or set)
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.DROPINDEX idx:goods1
"OK"
  • FT.DROPINDEX 刪除指定名稱索引,不會刪除 hash 類型的源數據

如果需要刪除索引數據,直接使用 del 命令刪除索引關聯的源數據即可。

Java 使用 RediSearch

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

Jedis 創建 RediSearch 客戶端

@Bean
public UnifiedJedis unifiedJedis(GenericObjectPoolConfig jedisPoolConfig) {
    UnifiedJedis client;
    if (StringUtils.isNotEmpty(password)) {
        client = new JedisPooled(jedisPoolConfig, host, port, timeout, password, database);
    } else {
        client = new JedisPooled(jedisPoolConfig, host, port, timeout, null, database);
    }
    return client;
}

Jedis 創建索引

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

Jedis 添加索引源數據

public boolean addGoodsIndex(String keyPrefix, Goods goods) {
    Map<String, String> hash = MyBeanUtil.toMap(goods);
    hash.put("_language", "chinese");
    client.hset("idx:goods" + goods.getGoodsId(), MyBeanUtil.toMap(goods));
    return true;
}

Jedis 中文查詢

public SearchResult search(String goodsIdxName, SearchObjVO searchObjVO, Page<SearchPageGoodsVO> page) {
    // 查詢關鍵字
    String keyword = searchObjVO.getKeyword();
    String queryKey = String.format("@goodsName:(%s)", keyword);
    Query q = new Query(queryKey);
    String sort = searchObjVO.getSidx();
    String order = searchObjVO.getOrder();
    // 查詢是否排序
    if (StringUtils.isNotBlank(sort)) {
        q.setSortBy(sort, Constants.SORT_ASC.equals(order));

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

最后聊兩句

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

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

如果想要在生產環境大規模使用,我還是不太建議的。

最后本文使用的 Jedis 操作 RediSearch 相關代碼,都在 newbee-mall-pro 項目的 JedisSearchTest 類有體現。

newbee-mall-pro:https://github.com/wayn111/newbee-mall-

責任編輯:武曉燕 來源: waynblog
相關推薦

2025-09-01 02:00:00

2025-01-22 14:02:35

2022-05-30 16:31:08

CSS

2025-02-08 08:00:00

JavaDeepSeekIDEA

2021-03-04 09:31:42

開源技術 項目

2025-01-13 13:47:13

2025-07-02 08:00:00

防抖SpringBoot開發

2022-06-08 08:01:28

模板字面量類型

2025-08-07 09:30:57

2024-01-30 09:21:29

CSS文字效果文字裝飾

2021-08-05 16:25:37

Windows 11Windows微軟

2023-03-06 08:03:10

Python可視化工具

2021-02-03 20:19:08

Istio流量網格

2025-06-09 01:22:00

2020-12-31 11:28:09

GitLabCICD

2009-02-25 13:59:57

布爾全文搜索全文搜索內置函數

2022-01-26 07:18:57

ES6WeakSetMap

2025-05-14 01:00:00

Spring工具工廠類

2025-04-02 04:55:00

2025-03-26 08:28:36

點贊
收藏

51CTO技術棧公眾號

欧美一区二区中文字幕| 久久久久99精品久久久久| 黄色一级视频片| 欧美女子与性| 免费日本视频一区| 欧美成人免费网| 国产偷人妻精品一区| 另类中文字幕国产精品| 亚洲女爱视频在线| 久久久久成人精品免费播放动漫| 538精品在线视频| 国产无遮挡裸体免费久久| 精品久久久久久亚洲国产300 | 日韩欧美2区| 日韩久久一区二区| 久草热久草热线频97精品| 亚洲最大成人在线视频| 在线观看视频免费一区二区三区| 日韩一区二区三区精品视频| 成熟丰满熟妇高潮xxxxx视频| www日本高清| 久久国产日本精品| 欧美激情在线有限公司| 天堂av网手机版| 久久99国产精品久久99大师 | 亚洲国产成人不卡| 国产99久久久久久免费看| 在线中文一区| 亚洲午夜未删减在线观看| 美女日批在线观看| 999国产精品亚洲77777| 午夜精品福利一区二区蜜股av| 3d动漫啪啪精品一区二区免费 | 亚洲精品激情| 久久亚洲综合国产精品99麻豆精品福利| 国产 福利 在线| 粗大黑人巨茎大战欧美成人| 国产精品456| 国产精品情侣自拍| 手机在线看片1024| 亚洲精品美女91| 欧美精品一区二区免费| 日韩一区二区三区四区视频| 欧美日韩国产一区二区在线观看| 一区二区三区高清在线| 亚洲欧洲日韩综合二区| 国产特级aaaaaa大片| 日本欧美韩国一区三区| 久久精品亚洲94久久精品| 69精品无码成人久久久久久| 日本一道高清一区二区三区| 欧美mv和日韩mv的网站| 国产成人强伦免费视频网站| 国产福利亚洲| 欧美午夜不卡视频| 亚洲男人天堂色| 欧美18—19sex性hd| 亚洲成av人片一区二区| 大胆欧美熟妇xx| 国产一二在线观看| 久久九九久精品国产免费直播| 91视频九色网站| 中文字幕乱码在线观看| 影音先锋久久资源网| 亚洲人精品午夜在线观看| 激情久久综合网| 国产精品久久免费视频| 91麻豆精品国产91久久久更新时间| 亚洲国产成人精品无码区99| 免费在线看污片| 一区二区三区视频在线观看| 日韩在线视频在线| 欧美xxxx免费虐| 亚洲国产精品精华液网站 | 青草久久视频| 日韩精品一二三四区| 少妇按摩一区二区三区| 国产成人ay| 日韩在线视频观看| 爱爱的免费视频| 精品久久不卡| xxx一区二区| 黄色在线观看免费| 欧美激情777| 久久91亚洲人成电影网站| 五月天婷婷网站| 亚洲一区二区日韩| 欧美精品九九久久| 神马久久久久久久| 久久se精品一区精品二区| 亚洲自拍偷拍区| 天堂网在线资源| 欧美激情在线一区二区三区| 国产卡一卡二在线| 99在线视频影院| 一区二区三区四区激情| 丰满爆乳一区二区三区| 国产综合色区在线观看| 7777精品伊人久久久大香线蕉完整版| 亚洲色图38p| 不卡的国产精品| 亚洲成人黄色网址| 国产三级黄色片| 欧美一区国产在线| 日韩美女视频免费在线观看| 国产精品久久久久精| 成人一区二区三区中文字幕| 欧洲一区二区在线观看| h片在线观看网站| 大荫蒂欧美视频另类xxxx| 天天色综合天天色| 精品精品精品| 久久色在线播放| 中文字幕在线有码| 久久久久久穴| 成人av电影免费| 高清日韩av电影| 亚洲一区二区成人在线观看| 亚洲免费一级视频| 开心激情综合| 久色乳综合思思在线视频| www.色国产| 免费视频最近日韩| 久久久一本精品99久久精品| 老司机福利在线视频| 富二代精品短视频| 天天干天天色天天干| 日韩精品久久久久久久软件91| 日韩欧美电影一区| 老司机深夜福利网站| 免费在线日韩av| 99在线视频免费观看| 色综合久久久久综合一本到桃花网| 中文字幕一区二区三区视频| 国产成人免费高清视频| 成人四虎影院| 7777精品伊人久久久大香线蕉经典版下载| 粉色视频免费看| 国产亚洲欧美日韩在线观看一区二区| 一本色道久久综合亚洲精品小说 | 中文字幕在线不卡| 男人舔女人下面高潮视频| 国内精品麻豆美女在线播放视频 | 免费国偷自产拍精品视频| 精品一二三区| 国产99久久精品一区二区永久免费 | 天天做天天爱天天高潮| 男女视频在线观看网站| 在线网址91| 亚洲自拍偷拍网站| 一级黄色在线播放| 91精品国产91久久久久久黑人| 久久久久久久久久久91| 国产三级伦理片| 亚洲蜜臀av乱码久久精品| 色一情一区二区三区| 色喇叭免费久久综合网| 国产在线精品成人一区二区三区| 亚洲欧美激情在线观看| 亚洲精品菠萝久久久久久久| 人妻内射一区二区在线视频| 亚洲美女15p| 欧美一级视频在线观看| 国产视频在线观看免费| 久久久久综合网| 日本新janpanese乱熟| 久久最新网址| 国产精品国模在线| 免费看av毛片| 五月婷婷欧美视频| 波多野结衣福利| 人人爽香蕉精品| 自拍偷拍亚洲色图欧美| 日韩精品一区二区三区中文 | 免费在线黄色网址| 色妞www精品视频| 亚洲天堂精品一区| 国产一区不卡在线| 草草视频在线免费观看| 欧美中文一区| 国产精品美女久久| 国内外激情在线| 精品欧美aⅴ在线网站| 2一3sex性hd| 久久久久久夜| 久久国产精品一区二区三区| 韩国主播福利视频一区二区三区| 精品久久久久久久人人人人传媒 | 在线观看黄色国产| 亚洲九九爱视频| 捆绑裸体绳奴bdsm亚洲| 日韩精品色哟哟| 国产精品12p| 欧美久久香蕉| 成人激情免费在线| 国产精品原创| 综合网日日天干夜夜久久| 精品国自产拍在线观看| 日韩欧美亚洲范冰冰与中字| 久久久久9999| 捆绑紧缚一区二区三区视频| 日韩久久久久久久久久久久| 天海翼亚洲一区二区三区| 97超碰色婷婷| 秋霞午夜理伦电影在线观看| 亚洲精品一线二线三线无人区| 久久精品性爱视频| 国产人成亚洲第一网站在线播放| 黄色国产精品视频| 亚洲乱码精品| 欧美日韩一区综合| 日韩福利一区| 久久99国产综合精品女同| 国产高清在线免费| 亚洲资源中文字幕| 久久久精品成人| 精品中文字幕一区二区小辣椒| 亚洲午夜精品久久| 成人午夜888| 日韩**中文字幕毛片| 国产乱妇乱子在线播视频播放网站| 欧美tickling挠脚心丨vk| 国产精品午夜一区二区| 中文字幕亚洲区| 999在线精品视频| 久久免费黄色| 国产69精品久久久久久久| 亚洲91精品| 亚洲精品美女久久7777777| 人妖一区二区三区| 国产精品久久久久久av福利软件| av福利在线播放| 日韩高清a**址| 亚洲国产综合网| 日韩欧美第一页| 日本在线观看视频网站| 亚洲综合另类小说| 日韩三级在线观看视频| 国产精品另类一区| 免费看91视频| 狠狠色伊人亚洲综合成人| www.涩涩涩| 日韩黄色小视频| 亚洲欧美一二三| 欧美综合久久| 日本不卡免费新一二三区| 日本福利一区| 久久久免费看| 五月天亚洲一区| 久久久国产精品一区二区三区| 欧美性生活一级| 国产精品久久久久久久av大片| 成人影欧美片| 精品国产网站地址| 国产视频在线播放| 久热99视频在线观看| 91最新在线视频| 欧美日韩xxxxx| 男女视频在线| 韩国一区二区电影| 久草在线资源站手机版| 欧美影院久久久| 91精品韩国| 国产精品专区第二| **国产精品| 亚洲一区中文字幕| 国产综合色区在线观看| 国产精品国产三级国产aⅴ9色| 久久一卡二卡| 97久久久久久| 免费亚洲电影| 97国产精品久久| www在线观看播放免费视频日本| 亚洲欧美日韩国产精品| 精品欧美不卡一区二区在线观看| 日韩限制级电影在线观看| 午夜精品久久久久久久爽| 亚洲国产另类久久精品| 韩国三级在线观看久| 日韩中文av在线| 欧美xxx黑人xxx水蜜桃| 久久综合免费视频| hd国产人妖ts另类视频| 欧美中文在线字幕| а√在线天堂官网| 国产精品精品一区二区三区午夜版| 激情国产在线| 97精品视频在线观看| 亚洲精品一级二级| 国产在线视频欧美| av综合网页| 色狠狠久久av五月综合|| 亚洲成人最新网站| 国产最新免费视频| 老司机精品视频在线| 日韩大片一区二区| 成人深夜在线观看| 谁有免费的黄色网址| 亚洲欧美偷拍三级| 香蕉影院在线观看| 91精品国产综合久久久蜜臀图片| 中文字幕av网站| 欧美性欧美巨大黑白大战| 中文字幕手机在线视频| 日韩片之四级片| 精品99又大又爽又硬少妇毛片| 亚洲免费影视第一页| 欧美日本网站| 欧美老女人性视频| 日本一区二区三区视频在线| 国产91亚洲精品一区二区三区| 99久久免费精品国产72精品九九 | 懂色av一区二区三区免费观看 | 亚洲bbw性色大片| 国产精品mm| 在线观看免费视频高清游戏推荐| 免费成人av在线播放| 挪威xxxx性hd极品| 亚洲视频小说图片| 18国产免费视频| 亚洲精品久久久久中文字幕二区| 五月天婷婷视频| 毛片精品免费在线观看| 国产黄色精品| 欧美亚洲另类久久综合| 欧美一二区在线观看| 妞干网在线视频观看| 国产乱码精品一区二区三区av| 国产精品成人99一区无码 | 亚洲精品你懂的| 6080午夜伦理| 精品国产3级a| av在线免费观看网址| 国产精品天天狠天天看| 亚洲宅男网av| 亚洲 欧美 日韩 国产综合 在线| 免费视频一区| 日韩精品人妻中文字幕有码| 一区二区三区四区高清精品免费观看 | 8888四色奇米在线观看| 奇米4444一区二区三区| 久久精品国产亚洲5555| 少妇一晚三次一区二区三区| 九色|91porny| 视频免费在线观看| 亚洲一区二区四区蜜桃| 日韩久久中文字幕| 亚洲成年人影院在线| 欧美xxxxhdvideosex| 91成人免费看| 911精品美国片911久久久| 亚洲欧美aaa| 国产精品不卡一区二区三区| 这里只有精品9| 自拍偷拍亚洲欧美| 欧美亚洲黄色| 亚洲一区在线直播| 久久99热国产| 日日噜噜夜夜狠狠久久波多野| 欧美日韩一区二区三区| 天天干天天爱天天操| 91av在线影院| 精品一区免费| 在线免费视频a| 中文字幕的久久| 亚洲香蕉在线视频| 久久久久999| 日本一区二区三区视频在线| 国产精品大全| 国产日韩一区| 欧美人与性囗牲恔配| 性久久久久久久久久久久 | 色先锋资源久久综合| 国产三级在线免费观看| 国产精品青草久久久久福利99| 视频福利一区| 日韩在线第三页| 国产精品久久网站| 精品人妻少妇AV无码专区| 欧美精品18videos性欧美| 日韩大尺度在线观看| 欧美黑人又粗又大又爽免费| 国产精品美女久久久久久2018| 日韩熟女一区二区| 日韩中文字幕网| caoporn成人| 激情五月开心婷婷| 国产精品毛片高清在线完整版| 无码日韩精品一区二区| 中文字幕视频在线免费欧美日韩综合在线看| 国产福利视频在线观看| 国产伦精品一区二区三区高清| 中文字幕一区二区三区乱码图片 | 91蜜桃网址入口| 波多野结衣家庭主妇| 精品视频偷偷看在线观看| 成人全视频免费观看在线看| 成人在线免费观看视频网站| xf在线a精品一区二区视频网站| 永久免费看片在线播放|