最近微信订阅号被RedisJSON的性能测试报告刷屏,好像甩了MongoDB,ES几条街的样子。
ps:我就是个菜鸟,只是之前学习了MongoDB,看到RedisJSON就想也学习一下。(RedisJSON纯内存,快是必然的。RedisJSON纯内存,可靠性是否会存在一些问题呢?大公司用MongoDB存储EB级别的数据,如果用RedisJSON存储会不会成本大增? -------来自我的一些疑问。)
RedisJSON是一个Redis模块,实现了ECMA-404的JSON数据交换标准作为本地数据类型。它允许从Redis键存储、更新、获取JSON值(文档)。
官网表示有四种方式使用RedisJSON:
1.使用Redis Cloud。当然是收费的,不过可以领取30MB的免费空间,类似于MongoDB的Atlas可以领取500MB的免费空间。这个就不多说了。
2.使用Docker安装。
3.下载预编译版本,然后在RedisJSON上运行Redis(run Redis with RedisJSON)。ps:咋感觉怪怪的,我怎么觉得应该是在Redis上运行RedisJSON模块。
4.下载源码构建。
第1种方式需要注册登录来着,挺麻烦,就不多说了。第4种方式,由于我太菜,就放弃了。
就试试用第2种用Docker安装和第3种下载预编译版本吧。
使用Docker安装RedisJSON:
我的电脑是win10,没有安装Docker,所以先安装一下Docker。
(前面我就觉得奇奇怪怪的,官网说用Docker可以在Windows,MacOS , Linux上安装RedisJSON。然后去下载预编译版本的网址只看到Linux版的。后面发现Docker是要运行在Linux环境下的,Windows,MacOS都要装虚拟机。上次用Docker还是做毕设的时候,好久了,都给忘了。)
我是根据菜鸟教程安装的:
(咳咳咳,事实证明我是个傻X,居然在Windows上直接装Docker,浪费我一中午的时间。)
略过上面部分。。。。
直接用Linux系统,或者在Linux虚拟机里面安装Docker。别用Windows装。
我租了个服务器玩玩,安装上宝塔,在宝塔的软件商店里搜索Docker,安装“Docker管理器”,这个能有个界面管理Docker。
Docker安装好了,使用 Docker 运行以下命令。
docker run -p 6379:6379 --name redis-redisjson redislabs/rejson:latest
一切都很顺利,只是提示了6379端口被占用,因为我安装的有Redis,Redis占用了6379端口,关闭就可以了。然后在Docker管理器里面启动redis-redisjson镜像。
RedisJSON模块(rejson.so)和RediSearch模块(redisearch.so)都已经加入到了容器的Redis里。
接着点击上图中redis-redisjson镜像最右边的终端按钮,进入容器中。执行以下命令,连接到Redis。
redis-cli --raw
运行结果:
接着执行插入,和查询命令,命令和结果如下所示。
插入:
JSON.SET foo . '"bar"'
查询:
JSON.GET foo
运行结果
就这样,通过Docker运行RedisJSON就完成了。
未完待续。。。。。。。。