RedisJson特性让我放弃了MongoDB,也让我放弃了Hash,我就问你们香不香?

图片

说说RedisJson 重磅特性


[公粽号:堆栈future]

干货:redis支持json文档存储了,你可以放弃mongodb了?


1. mongodb介绍

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写,旨在为WEB应用提供可扩展的高性能数据NoSQL存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。图片

MongoDB在高负载的情况下,可以添加更多的节点,以此来保证服务器性能。

既然MongoDB是以类JSON文档存储,那么更新文档,删除文档或者获取文档等都是在操作类JSON。我们可以看下MongoDB插入,以下事例摘自网络哈:

>db.col.insert({title: 'MongoDB', 
    description: 'MongoDB是一个Nosql数据库',
    by: 'baidu',
    tags: ['mongodb', 'database', 'NoSQL'],
})

查询:

> db.col.find({"by":"baidu"}).pretty()
{
        "_id" : ObjectId("56063f17ade2f21f36b03133"),
        "description" : "MongoDB是一个Nosql数据库",
        "by" : "baidu",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ]
}

这个类JSON文档其实它的数据结构和JSON基本一样,所有存储在集合中的数据都是BSON格式。

BSON是一种类似JSON的二进制形式的存储格式,是Binary JSON的简称。

2. RedisJson

RedisJSON - Redis的JSON数据类型

你没有看错,就是Redis最新出的一个特性:支持JSON存储和获取了。这个功能我觉得是王炸,对于我这种人来说存储json数据有很多好处,但是你可能会反对,redis已经有hash数据类型了,多一个json类型难免有点鸡肋,毕竟这么多年了,没有json类型大家也照样过来了,那么它到底解决什么问题呢?

别急,请往下看。

RedisJSON是一个Redis模块,实现了ECMA-404 JSON数据交换标准作为本地数据类型。它允许根据Redis键存储,更新和获取JSON值(文档)。

主要特性:

  • 完全支持JSON标准

  • 用类似JSONPath的语法在文档中选择元素

  • 文档以树状结构的二进制数据形式存储,可以快速访问子元素

  • 对于所有JSON值类型都定义了原子操作

RedisJSON是在Redis用<3开发的。源代码可以从https://github.com/RedisJSON/RedisJSON获得。

❤️:是什么意思呢?哈哈哈哈哈哈,知道这个的挺厉害的,不知道的下去查下哦。

接下来我们给大家演示下:

  1. 使用Docker启动RedisJSON

    使用Docker在Windows、MacOS或Linux上运行以下命令:

docker run -p 6379:6379 --name redis-redisjson redislabs/rejson:latest

打印日志如下:图片

  1. 使用RedisJSON

    用redis-cli可以直接进入:

//插入json数据 key是doc value是json
➜  ~ redis-cli
127.0.0.1:6379> JSON.SET doc . '{"name": "jamlee", "age": 18}'
OK

//获取json里面的field
127.0.0.1:6379> JSON.GET doc .name
"\"jamlee\""
127.0.0.1:6379> JSON.GET doc .age
"18"

//把我的年龄加1
127.0.0.1:6379> JSON.NUMINCRBY doc .age 1
"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"

再给大家展示一个比较厉害的:

//创建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下载中心下载预编译版本 https://redis.com/download-center/modules/

  2. 接下来,使用RedisJSON运行Redis

$ redis-server --loadmodule /path/to/module/rejson.so

3. 小结

既然redis支持json了,你们还会用MongoDB吗?我相信大家通过上面的操作演示就可以看出来了,你们心里也一定有答案了。

而且通过上面演示,我相信你也立马看出来RedisJson和Hash的区别了,有时候hash做不了的,RedisJson非常轻松的都可以搞定。

参考:https://oss.redis.com/redisjson/#redis-cloud

公粽号:堆栈future

使很多处于迷茫阶段的coder能从这里找到光明,堆栈创世,功在当代,利在千秋

124篇原创内容
图片

### 回答1: Active Directory服务是种由微软公司开发的网络服务,它提供了种集中管理和控制网络资源的方式。它可以在中集中管理用户、计算机、应用程序和其他网络资源,从而提高了网络的安全性和可管理性。Active Directory服务还提供了些高级功能,如单点登录、组策略管理和名系统(DNS)集成等,使得网络管理员可以更加轻松地管理和维护网络。 ### 回答2: Active Directory服务(Active Directory Domain Services,简称AD DS)是微软公司的项用于管理和组织网络资源的目录服务。它是种基于LDAP(轻量级目录访问协议)的目录服务,可以让用户和管理员方便地管理和访问网络中的资源。 AD DS的主要功能包括用户身份认证、访问控制、组管理和资源管理等。通过AD DS,管理员可以集中管理和配置用户和计算机的访问权限,确保系统安全。同时,AD DS还提供了的集中管理功能,管理员可以通过控制器管理中的所有对象,并在中实施策略。 AD DS还支持单点登录功能,用户只需在登录到之后,即可自动访问到所属中的资源,而无需再次输入用户名和密码。这大大提高了用户的工作效率。 此外,AD DS还支持多架构,可以通过建立信任关系实现跨资源的访问和管理。管理员可以维护多个之间的信任关系,实现用户和资源的统管理。 总而言之,AD DS是种强大的目录服务,可以实现用户和资源的集中管理和访问控制,提高网络系统的稳定性和安全性。它是企业网络管理的重要组成部分,为企业提供了高效的身份认证和资源管理功能,增强了企业的生产力和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值