一、NoSQL
NoSQL 数据库,最初指的是 非SQL 的,或非关系的数据库,为数据的存储和检索提供了一种机制,这种数据建模的方式不是关系数据库中使用的表格关系。也有时将NoSQL系统称为 “不仅仅是SQL”,以强调它们可能支持类似SQL的查询语言,或者在多语言持久化架构中与SQL数据库共存。
NoSQL 数据库越来越多的应用于大数据 和实时Web 应用程序中,这类数据库自20世纪60年代末就已经存在,但“NoSQL”这个名称是在21世纪初才被创造出来的。
NoSQL与关系型数据库相比:
优点:更简单的水平伸缩到机器集群,更好的控制可用性和限制对象-关系阻抗不匹配。nosql 数据库使用的数据结构有键值对、宽列、图、或文档与关系型数据中默认使用的数据结构不同,这使得NoSQL中的一些操作速度更快,更灵活
不足: 许多nosql 存储在 可用性、分区容忍度和速度方便牺牲了一致性,缺乏跨表执行特别连接的能力,缺乏标准化接口,缺乏真正的ACID事务
不过大多数NoSQL 数据库提供了‘最终一致性’ 的概念,在该概念中,数据库更改通常在毫秒内传播到所有节点,因此数据查询可能不会立即返回更新的数据,或者可能导致读取数据不准确,称为过时读取的问题,另外,某些NoSQL系统可能会出现丢失的写入和其他形式的数据丢失,对于这个问题,一些NoSQL系统提供诸如预写日志记录之类的概念,以避免数据丢失。
用于分布式事务处理跨多个数据库,数据一致性是一个更大的挑战,对于NoSQL和关系数据库都很难。关系数据库“不允许参照完整性约束跨越数据库”,很少有系统同时维护ACID事务和X / Open XA标准以进行分布式事务处理,交互式关系数据库共享构象中继分析技术作为一个共同特征。使用语义虚拟化协议可以克服接口环境中的限制,从而使大多数操作系统都可以访问NoSQL服务。
二、Redis
Redis 属于 NoSQL 数据库,是一个开源的内存数据结构存储。
使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库,可以用作数据库,缓存和消息代理,
支持的数据结构: 字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,带有半径查询的流空间索引和流。 可以对这些类型运行原子操作,例如追加到字符串; 在哈希中增加值 ; 将元素推送到列表 ; 计算集的交集, 并集和差 ; 或获得排序集中排名最高的成员。
Redis具有内置的复制,Lua脚本,LRU逐出,事务和不同级别的磁盘持久性,并提供高可用性Redis Sentinel和Redis Cluster自动分区。为了获得出色的性能,Redis使用 内存中的数据集。根据您的用例,您可以通过将数据集 偶尔转储到磁盘上,或者通过将每个命令附加到log来持久化它。如果只需要功能丰富的网络内存缓存,则可以选择禁用持久性。Redis还支持琐碎的设置主从异步复制,具有非常快速的非阻塞式第一次同步,自动重新连接以及网络拆分中的部分重新同步。
并且可以在大多数POSIX系统中使用,例如Linux,* BSD,OS X,而无需外部依赖。不过Linux和OS X是Redis开发和测试最多的两个操作系统,建议使用Linux进行部署。
支持的语言
官网:
-- 官网地址 https://redis.io/
下载的话,官网或下面的连接
--也可以直接网盘 https://pan.baidu.com/s/16J-6gjgqMu7Nl0GmHiL32g 提取码:1h3c