RedisJson特性让我放弃了MongoDB,也让我放弃了Hash,我
就问你们⾹不⾹?
说说Redis Json 重磅特性
[公粽号:堆栈future]
⼲活: redis⽀持json⽂档存储了,你可以放弃mongodb了?
1. mongodb介绍
MongoDB是⼀个基于分布式⽂件存储的数据库。由C++语⾔编写,旨在为WEB应⽤提供可扩展的⾼性能数据NoSQL存储解决⽅案。
MongoDB是⼀个介于关系数据库和⾮关系数据库之间的产品,是⾮关系数据库当中功能最丰富,最像关系数据库的。
MongoDB将数据存储为⼀个⽂档,数据结构由键值(key=>value)对组成。MongoDB⽂档类似于JSON对象。字段值可以包含其他⽂档,数组及⽂档数组。 [图⽚上传失败...(image-8681b9-1640751508529)]
MongoDB在⾼负载的情况下,可以添加更多的节点,以此来保证服务器性能。
既然MongoDB是以类JSON⽂档存储,那么更新⽂档,删除⽂档或者获取⽂档等都是在操作类JSON。我们可以看下MongoDB插⼊,以下事例摘⾃⽹络哈:
description: 'MongoDB是⼀个Nosql数据库',
redis是nosql数据库吗by: 'baidu',
tags: ['mongodb', 'database', 'NoSQL'],
})
查询:
{
"_id" : ObjectId("56063f17ade2f21f36b03133"),
"description" : "MongoDB是⼀个Nosql数据库",
"by" : "baidu",
"tags" : [
"mongodb",
"database",
"NoSQL"
]
}
这个类JSON⽂档其实它的数据结构和JSON基本⼀样,所有存储在集合中的数据都是BSON格式。
"19"
//我想在json中在插⼊⼀个field属性:
127.0.0.1:6379> JSON.SET doc .array '[1,2,3]'
OK
127.0.0.1:6379> JSON.GET doc
"{"name":"jamlee","age":19,"array":[1,2,3]}"
//给json中的array数组增加三个元素
127.0.0.1:6379> JSON.ARRAPPEND doc .array true null false
(integer) 6
//从json的array中pop⼀个元素出来
127.0.0.1:6379> JSON.ARRPOP doc .array
"false"
//查看json的array
127.0.0.1:6379> JSON.GET doc .array
"[1,2,3,true,null]"
//查看type
127.0.0.1:6379> JSON.TYPE doc
"object"` </pre>
再给⼤家展⽰⼀个⽐较厉害的:
`//创建json 不过⾥⾯是list
127.0.0.1:6379> JSON.SET lst . '[ true, { "answer": 42 }, null ]'
OK
/
/获取第⼆个元素的answer属性
127.0.0.1:6379> JSON.GET lst [1].answer
"42"
到这⾥我就不⼀⼀列举了,⽀持的操作⾮常多⽽且灵活,你就说⽤它来存储json⾹不⾹,我觉得太⾹了。那你说你是docker启动的,我如果想⽤但不想⽤docker启动怎么办?好说啊,上⼲货:
1. 先从Redis下载中⼼下载预编译版本 redis/download-center/modules/
2. 接下来,使⽤RedisJSON运⾏Redis
$ redis-server --loadmodule /path/to/module/rejson.so
3. ⼩结
既然redis⽀持json了,你们还会⽤MongoDB吗? 通过上⾯演⽰,我相信你⽴马看出来RedisJson和Hash的区别了,有时候hash做不了的,RedisJson⾮常轻松的都可以搞定。
公粽号:堆栈future

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。