键值对存储数据库是NoSQL数据库中的一种类型,也是最简单的NoSQL数据库。键对值对存储数据库中的数据是以键值对的形式来存储的。常见的键值对存储数据库有redis、Tokyo Cab.NET/Tyrant、Voldemort以及Oracle BDB等数据库。键值对存储数据库的结构示意图如下。
键值对存储数据库的结构实际上是一个映射,即Key是查找每条数据的唯一标识符,Value是该数据实际存储的内容。键值对存储数据库结构是采用哈希函数来实现键到值的映射,当查询数据时,基于Key的哈希值会直接定位到数据所在的位置,实现快速查询,并支持海量数据的高并发查询。
会话存储指的是一个面向会话的应用程序(如Web应用程序)在用户登录时启动会话,并保持活动状态直到用户注销或会话超时,在此期间,应用程序将所有与会话相关的数据存储在内存或键值对存储数据库中。会话数据包括用户资料信息、消息、个性化数据和主题、建议、有针对性的促销和折扣。每个用户会话具有唯一的标识符,除了主键之外,任何其他键都无法查询会话数据,因此键值对存储数据库更适合于存储会话数据。
购物车指的是电子商务网站中的购物车功能。在假日购物季,电子商务网站可能会在几秒钟内收到数十亿的订单,键值对存储数据库可以处理海量数据的扩展和极高的状态变化,同时通过分布式处理和存储为数百万并发用户提供服务。此外,键值对存储数据库还具有内置冗余的功能,可以处理丢失的存储节点。
文档存储数据库不是文档管理系统。文档存储数据库是用于存储和管理文档,其中文档是结构化的数据(如JSON格式)。常见的文档存储数据库有MongoDB、CouchDB以及RavenDB等数据库。文档存储数据库的结构示意图如下。
文档存储数据库存储的文档可以是不同结构的,即JSON、XML以及BSON等格式。
内容管理应用程序存储数据,首选的就是文档存储数据库,例如博客和视频平台主要使用的数据库就是文档存储数据库。通过文档存储数据库,内容管理应用程序所跟踪的每个实体都可存储为单个文档。随着需求的发展,对于开发人员来说,可以使用文档存储数据库更直观地更新应用程序。此外,如果需要更改数据模型,则只需要更新受影响的文档即可,而不需要更新架构,也不需要等到数据库停机时进行更改。
在电子商务应用程序中,文档存储数据库可以高效且有效的存储商品的信息。例如,在电子商务应用程序中,不同的产品具有不同数量的属性。若是在关系型数据库中管理数干个属性,则效率比较低,并且阅读的性能会受到影响;若是使用文档存储数据库的话,可以在单个文档中描述每个产品的属性,既可以方便管理,又可以加快阅读产品的速度,并且更改一个产品的属性不会影响其他的产品。
列式存储数据库是以列为单位存储数据,然后将列值顺序地存入数据库中,这种数据存储法不同于基于行式存储的传统关系型数据库。列式存储数据库可以高效地存储数据,也可以快速地处理批量数据实时查询数据。常见的列式存储数据库有HBase、Cassandra、Riak以及HyperTable等数据库。列式存储数据库的结构示意图如下。
在列式存储数据库中,如果列值不存在,则不需要存储(阴影部分为列值不存在),这样的话,遇到Nul值,就不需要存储,可以减少I/O操作和避免内存空间的浪费。
在事件记录中,使用列式存储数据库来存储应用程序的状态以及应用程序遇到错误等事件信息。由于列式存储数据库具有高扩展性,因此可高效地存储应用程序源源不断产生的事件记录。
在博客网站中,列式存储数据库可以将博客的“标签”、“类别”“连接”及“引用通告”等内容存放在不同的列中,便于进行数据分析。
图形存储数据库不是网络数据库,它是NoSQL数据库的一种类型,其主要是应用图形理论来存储实体之间的关系信息,其中,实体被视为图形的“节点”,关系被视为图形的“边”,“边”按照关系将“节点”按进行连接。常见的图形存储数据库有Neo4j、FlockDB、AllegroGrap以及GraphDB等数据库。图形存储数据库的结构示意图如下。
利用图形存储数据库存储的数据,可以很清晰知道两个实体之间的关系,即A和D是朋友,C是A朋友的朋友。
在欺诈检测中,图形存储数据库能够有效地防范复杂的欺诈行为。在现代欺诈及各种类型的金融犯罪中,例如银行欺诈、信用卡欺诈、电子商务欺诈以及保险欺诈等,欺诈者通过使用改变自己身份等的手段逃避风控规则,从而达到欺诈目的。尽管欺诈者是可以改变所有涉及网络的关联关系,也可以在所有涉及网络的群体中同步执行相同操作来躲避风控,但我们可以通过图形存储数据库建立跟踪全局用户的跟踪视角,实时利用图形存储数据库来分析具有欺诈行为的离散数据,从而识别欺诈环节,这样的话,最大程度上快速有效地防范和解决欺诈行为。
在推荐应用中,我们可以借助图形存储数据库存储购物网站中客户的购买记录、客户兴趣等信息,然后根据客户当前浏览的商品结合已存储的购物信息,从而推荐相关的商品。