Redis是开发中非常常用的内存数据存储中间件,之前基本上用它来做内存存储使用。最近发现Redis推出了很多增强模块,例如通过RedisJSON可以支持原生JSON对象的存储,使用RediSearch可以作为搜索引擎使用,并且支持中文搜索!今天给大家带来RediSearch RedisJSON作为搜索引擎的使用实践,希望对大家有所帮助!
RedisMod简介
首先介绍下RedisMod这个东西,它是一系列Redis的增强模块。有了RedisMod的支持,Redis的功能将变得非常强大。目前RedisMod中包含了如下增强模块:
-
RediSearch:一个功能齐全的搜索引擎;
-
RedisJSON:对JSON类型的原生支持;
-
RedisTimeSeries:时序数据库支持;
-
RedisGraph:图数据库支持;
-
RedisBloom:概率性数据的原生支持;
-
RedisGears:可编程的数据处理;
-
RedisAI:机器学习的实时模型管理和部署。
安装
首先我们需要安装带所有RedisMod的Redis,使用Docker来安装非常方便的!
-
使用如下命令下载RedisMod的镜像;
docker pull redislabs/redismod:preview
-
在容器中运行RedisMod服务。
docker run -p 6379:6379 --name redismod \
-v /mydata/redismod/data:/data \
-d redislabs/redismod:preview
RedisJSON
有了RedisJSON模块,Redis就可以存储原生JSON类型数据了,通过它你可以很方便地访问JSON中的各个属性,类似在MongoDB中那样,下面我们就来体验下,这里我们将使用RedisInsight来操作Redis。
-
首先通过
JSON.SET
命令向Redis中添加JSON类型键值对,几个商品对象数据,由于JSON是树形结构的,使用$
符号代表往JSON的根节点中添加数据;
JSON.SET product:1 $ '{"id":1,"productSn":"7437788","name":"小米8","subTitle":"全面屏游戏智能手机 6GB 64GB 黑色 全网通4G 双卡双待","brandName":"小米","price":2699,"count":1}'
JSON.SET product:2 $ '{"id":2,"productSn":"7437789","name":"红米5A","subTitl