精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产成人精品亚洲精品| 日韩电影中文字幕一区| 特级黄色录像片| 亚洲AV无码精品色毛片浪潮| 99re国产精品| 永久免费看mv网站入口亚洲| 樱花草www在线| 福利网站在线观看| 国产三级精品三级| 91国产在线播放| 少妇太紧太爽又黄又硬又爽| 欧美电影免费| 精品成人一区二区三区四区| 亚洲精品乱码久久久久久自慰| 日本在线观看免费| 91亚洲国产成人精品一区二三| 国产精品激情av在线播放| 日本青青草视频| 国产欧美日韩免费观看 | 亚洲GV成人无码久久精品| 久久在线播放| 日韩精品免费综合视频在线播放| 91pony九色| 九九热线视频只有这里最精品| 亚洲乱码国产乱码精品精可以看| 精品在线视频一区二区| 999国产精品视频免费| 天堂精品中文字幕在线| 午夜精品在线视频| 久久久久99精品成人片试看| 欧洲三级视频| 亚洲人成电影网站色…| 日韩无码精品一区二区| 精品国产麻豆| 欧美日本视频在线| 国产性生交xxxxx免费| av在线网页| 一区二区三区中文字幕精品精品| 亚洲 日韩 国产第一区| 你懂的视频在线| www.亚洲免费av| 成人黄动漫网站免费| 国产美女三级无套内谢| 蜜臀av在线播放一区二区三区| 51色欧美片视频在线观看| 欧美成人精品欧美一级私黄| 五月婷婷六月综合| 日韩在线视频一区| 午夜精品区一区二区三| 视频国产一区二区三区| 成人h精品动漫一区二区三区| 91aaaa| 国产又粗又长又大视频| 蜜臀久久久久久久| 国产欧美一区二区三区在线| 欧美日韩 一区二区三区| 视频一区在线视频| 国产成人精品av| 区一区二在线观看| 久久婷婷麻豆| 国产精欧美一区二区三区| 波多野结衣日韩| 日韩电影在线看| 国产女精品视频网站免费| 在线观看日韩一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 潘金莲一级淫片aaaaaa播放| 久久国产88| 国产精品va在线| 在线视频你懂得| 国内精品视频一区二区三区八戒| 91九色国产在线| 亚洲av无码乱码国产麻豆| 成人免费的视频| 久久国产精品一区二区三区四区| 视频一区二区在线播放| 欧美国产国产综合| 99亚洲精品视频| 国产精品—色呦呦| 欧美午夜片在线免费观看| 99免费视频观看| 亚洲一区二区av| 精品精品国产高清a毛片牛牛| 人妖粗暴刺激videos呻吟| 五月综合久久| www日韩欧美| 久久婷婷一区二区| 美女视频一区免费观看| 国产精品入口尤物| 成 人 免费 黄 色| 久久久电影一区二区三区| 亚洲精品高清视频| 国产蜜臀在线| 欧美三级蜜桃2在线观看| 初高中福利视频网站| 免费观看成人www动漫视频| 一区二区欧美亚洲| 久久久久久久久艹| 天堂精品中文字幕在线| 亚洲伊人第一页| 日本大臀精品| 亚洲免费观看高清完整| 97视频在线免费播放| 成人在线分类| 亚洲片av在线| 18精品爽视频在线观看| 日韩国产欧美在线播放| 成人情视频高清免费观看电影| 国产综合视频一区二区三区免费| 亚洲人成网站精品片在线观看| 干日本少妇首页| 日本免费一区二区视频| 日日骚av一区| 国产精品美女久久久久av爽| 国产一区欧美一区| 欧美在线一二三区| a'aaa级片在线观看| 欧美区在线观看| 在线观看日本中文字幕| 红桃视频亚洲| 91久久国产婷婷一区二区| 欧美理论在线观看| 亚洲一区二区三区精品在线| 国产无遮挡猛进猛出免费软件| 黄色美女久久久| 色综合久久88色综合天天看泰| 国产精品无码粉嫩小泬| 26uuuu精品一区二区| 99久久久精品视频| 国产精品日韩精品在线播放| 亚洲午夜小视频| 特一级黄色大片| 国产成人精品免费网站| 亚洲一区二区高清视频| 电影亚洲一区| 亚洲欧美日韩久久久久久 | 黑人巨大精品欧美一区二区| 伊人五月天婷婷| 久久综合电影| 国产精品一区久久| 在线看av的网址| 欧美在线综合视频| 国产18无套直看片| 久久久久看片| 欧美理论一区二区| 大胆人体一区| 亚洲免费成人av电影| 自拍偷拍欧美亚洲| 99精品在线观看视频| 人人干视频在线| 欧美三级午夜理伦三级小说| 午夜精品三级视频福利| а√天堂资源在线| 亚洲综合网站在线观看| 无码国产精品一区二区高潮| 欧美在线网站| 国产精品9999久久久久仙踪林| 丝袜国产在线| 精品国产3级a| xxxx.国产| av网站免费线看精品| 日本www在线播放| 免费黄色成人| 国产一区二区在线免费| 久草中文在线观看| 精品免费视频一区二区| 亚洲欧美在线观看视频| 久久综合久久综合久久| 精品久久久久久久无码| 久久中文字幕二区| 99久久99久久精品国产片| av中文字幕在线观看第一页| 亚洲第一天堂无码专区| 亚洲va在线观看| 欧美国产日韩a欧美在线观看| 成 人 黄 色 小说网站 s色| 91精品国产91久久久久久黑人| 91视频99| 国产精品一区二区av影院萌芽| 一区二区日韩精品| 国产白浆在线观看| 欧美天堂在线观看| 刘亦菲国产毛片bd| 国产福利91精品| 97成人在线观看视频| 日韩精品一区二区三区免费观看| 91精品啪在线观看麻豆免费| 成人av影院在线观看| 亚洲视频在线看| 97超视频在线观看| 亚洲va欧美va人人爽| 亚洲а∨天堂久久精品2021| 国产福利精品导航| 日韩手机在线观看视频| 欧美91精品| 欧美日本国产精品| 精品国产伦一区二区三区观看说明| 国内精品模特av私拍在线观看| 国产精品一级伦理| 欧美一区二区三区爱爱| 天码人妻一区二区三区在线看| 日韩一区日韩二区| 亚洲精品中文字幕在线播放| 久久er精品视频| 久久久久久久激情| 欧美在线免费| 色噜噜色狠狠狠狠狠综合色一 | 国产有色视频色综合| 久久99国产精品二区高清软件| 久久久久久久久久久人体| 第九色区av在线| 亚洲黄色免费三级| 国产乱淫av免费| 欧美自拍丝袜亚洲| 99热国产在线观看| 亚洲精品日韩一| 亚洲一二三四视频| wwwwww.欧美系列| 伊人av在线播放| 久久99九九99精品| 成人黄色一区二区| 国产欧美在线| 国内少妇毛片视频| 国产精品99一区二区三| 欧美日韩在线一二三| 精品av导航| 99国产超薄肉色丝袜交足的后果| 日韩大陆av| 国产精品精品久久久久久| 在线高清av| 91极品女神在线| 丰满大乳少妇在线观看网站| 欧美成年人网站| 五月婷婷在线观看| 中文国产成人精品| 国产小视频在线| 日韩精品福利网站| 香蕉av在线播放| 亚洲国产天堂久久综合网| 成人黄色免费视频| 日韩亚洲欧美在线| 99re只有精品| 欧美一级高清片| 国产内射老熟女aaaa∵| 69堂成人精品免费视频| 一本一道精品欧美中文字幕| 欧美亚洲国产一区二区三区| 无码人妻丰满熟妇区五十路| 色综合网站在线| 青青国产在线视频| 欧美视频在线播放| 一区二区自拍偷拍| 欧美乱熟臀69xxxxxx| 亚洲天堂999| 在线91免费看| 国产日韩欧美一区二区东京热 | 久久91麻豆精品一区| 麻豆av一区二区三区久久| 亚洲电影一级片| 日本午夜精品一区二区三区| 欧美一级精品片在线看| 亚洲欧洲久久| 在线看片不卡| 久久在线中文字幕| 中文一区在线| 免费看污黄网站| 国内精品免费**视频| 三上悠亚 电影| av在线一区二区三区| 尤物视频最新网址| 久久精品日产第一区二区三区高清版| 国产伦理片在线观看| 中文字幕五月欧美| 18精品爽视频在线观看| 日韩欧美精品网站| 中文字幕在线播放日韩| 欧美成人精品福利| 日色在线视频| 色噜噜国产精品视频一区二区| 最新av在线播放| 91精品国产高清自在线| 成人精品一区二区三区电影| 亚洲伊人成综合成人网| 亚洲桃色综合影院| 一本一本a久久| 亚洲精品人人| 国产精品视频中文字幕| 不卡一卡二卡三乱码免费网站| 色哟哟精品观看| 一级女性全黄久久生活片免费| 69成人免费视频| 欧美精品99久久久**| 秋霞网一区二区| 一本色道久久综合狠狠躁篇的优点| bt在线麻豆视频| 欧美在线精品免播放器视频| 91精品福利观看| 麻豆一区区三区四区产品精品蜜桃| 日韩毛片视频| 欧美日韩国产精品激情在线播放| 精一区二区三区| 亚洲熟妇一区二区三区| 亚洲精品成人精品456| 国产熟妇一区二区三区四区| 日韩欧美综合在线| 成人一区二区不卡免费| 久久久久久97| 亚洲欧美综合久久久久久v动漫| 精品人伦一区二区三区| 重囗味另类老妇506070| 久久久精品麻豆| 91免费视频网| 妺妺窝人体色www聚色窝仙踪| 欧美亚洲国产一区在线观看网站| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 精品国产欧美一区二区三区成人 | 亚洲成人动漫一区| 国产巨乳在线观看| 亚洲性xxxx| 色在线中文字幕| 国产精品免费观看高清| 久久精品一区二区不卡| 欧美精品aaaa| 91免费看`日韩一区二区| 黄网站免费在线| 日韩一区二区在线观看视频| 青青青青在线| 国产精品福利无圣光在线一区| 欧美日韩一本| 六月婷婷在线视频| 国产成人99久久亚洲综合精品| 人人干在线观看| 欧美日本在线播放| 在线视频婷婷| 国产精品人成电影| 日产精品一区二区| 亚洲欧美另类动漫| 国产亚洲短视频| 无码人妻精品一区二区蜜桃色欲| 精品亚洲aⅴ在线观看| 日本午夜大片a在线观看| 国产精品视频入口| 尹人成人综合网| 在线观看成人动漫| 同产精品九九九| 日韩美女一级视频| 欧美一区二区大胆人体摄影专业网站| 国产精东传媒成人av电影| 免费人成自慰网站| 暴力调教一区二区三区| 日韩三级视频在线| 精品亚洲aⅴ在线观看| 黑人巨大亚洲一区二区久| 欧美在线3区| 美女任你摸久久| 爱爱视频免费在线观看| 欧美电影精品一区二区| 好看的中文字幕在线播放| 国产精品一级久久久| 一区二区三区四区五区精品视频| 亚洲综合自拍网| 日本道精品一区二区三区| 日产欧产va高清| 亚洲国产美女久久久久| 一个人www视频在线免费观看| 欧美日韩日本网| 男女男精品网站| 欧美成人777| 欧美精品一区二区蜜臀亚洲| 欧美极品videos大乳护士| 日本在线观看一区二区| 日韩av中文在线观看| 四虎永久免费在线| 精品成人a区在线观看| 欧美成人免费电影| 在线电影看在线一区二区三区| 国产一二精品视频| 日本三级中文字幕| 亚洲午夜女主播在线直播| 国产精选久久| 国产免费黄色一级片| 久久九九久久九九| 国产美女明星三级做爰| 97婷婷大伊香蕉精品视频| 日韩国产欧美一区二区| 中文字幕乱妇无码av在线| 精品久久久久久中文字幕| 电影av一区| 97夜夜澡人人双人人人喊| 久久婷婷激情| 黄色一级视频在线观看| 亚洲三级免费看| 日韩一区二区三区精品视频第3页| 欧美啪啪免费视频| 亚洲欧洲日韩在线| 天堂成人在线| 91九色蝌蚪嫩草| 视频一区二区不卡| 久久黄色小视频| 色偷偷9999www|