中国站

Redis是一种什么样的数据库?

2020-03-18 18:59:52 来源:亿速云

在Web应用的发展初期,“关系型数据库”得到了广泛的关注和应用,原因是因为当时的Web站点基本上访问量和并发量都不高。后来,随着访问量的不断攀升,使用关系型数据库的Web站点或多或少都开始在性能上出现了一些瓶颈,而瓶颈的源头一般来自于磁盘的I/O(即输入和输出)上。随着互联网技术的进一步发展,尤其是移动互联网的出现,各种类型的应用层出不穷,这导致了在当今“云计算、大数据”盛行的时代,对性能有了更高的需求,主要体现在以下四个方面:

1、低延迟的读写速度:手机应用的快速反应,能极大地提升用户的满意度;
2、支撑海量的数据和流量:对于“搜索”这样高并发量的大型应用而言,需要利用PB级别的数据和能应对百万级的流量;
3、大规模集群的管理:系统管理员希望分布式应用,能进行更简单的部署和管理;
4、庞大运营成本的考量:企业的IT部门希望在“硬件成本、软件成本和人力成本”上能够有大幅度的降低;

为了解决应用对更高性能需求的问题,NoSQL(非关系型数据库)应运而生,它同时具备了“高性能、高可用性、可扩展性强”等优势和特点,因此广泛地受到了开发人员和系统管理员们的青睐。

一、Redis是一种什么样的数据库?

Redis是目前最受欢迎的NoSQL(非关系型数据库)之一,是一种使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的“键值对存储数据库”,其具有如下4种特性:
❶基于内存运行,性能高效;
❷支持分布式,理论上可以无限扩展;
❸key-value存储系统;
❹开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API(应用编程接口)。

相比于其他数据库类型,Redis具备的特点是:

❶C/S(客户机/服务器)通讯模型;
❷单进程单线程模型;
❸丰富的数据类型;
❹持久化;
❺高并发读写;
❻支持lua脚本。

二、Redis的应用场景有哪些?

Redis 的应用场景,主要包括:缓存系统(“热点”数据:高频读、低频写)、计数器、消息队列系统、排行榜、社交网络和实时系统。

三、Redis提供的数据类型

Redis不仅仅只支持简单的“K-V形式”的数据存储,还支持“Hash 、list、set、zset”等集合类数据存储。Redis提供的数据类型,主要分为5种自有类型和一种自定义类型,这5种自有类型包括:String类型、哈希(Hash)类型、列表(List)类型、集合(Set)类型和顺序集合(ZSet)类型。

四、除了Redis,还有什么NoSQL(非关系)型数据库?

市面上类似于Redis,同样是NoSQL(非关系)型的数据库有很多,如下图所示,除了Redis,还有“MemCache、Cassadra和Mongo”。下面,我们分别对这几个数据库做一下简要的介绍:

1、 Memcache:这是一个和Redis非常相似的数据库,但是它的数据类型没有Redis丰富。Memcache由LiveJournal的Brad Fitzpatrick开发,作为一套分布式的高速缓存系统,被许多网站使用以提升网站的访问速度。Memcache对于一些大型的、需要频繁访问数据库的网站提升访问速度,效果十分显著。

2、 Apache Cassandra:(社区内一般简称为C*)这是一套开源分布式的NoSQL数据库系统。它最初由Facebook (脸书)开发,用于存储“收件箱”等简单格式的数据,集Google BigTable(谷歌设计的一种非关系型数据库)的数据模型与Amazon Dynamo(亚马逊研发的一套基于KV存储模型的数据库)的完全分布式架构于一身。Facebook(脸书)于2008年将 Cassandra 开源,由于其良好的可扩展性和性能,被 Apple(苹果)、Comcast(康卡斯特)、Instagram(照片墙)、Spotify(声田)、eBay(易贝)、Rackspace、Netflix(奈飞)等知名网站和企业所采用,成为了一种流行的分布式结构化数据存储方案。

3、 MongoDB:是一个基于分布式文件存储、面向文档的NoSQL数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,它是非关系数据库当中功能最丰富、最像关系型数据库的,支持的数据结构非常松散,是一种类似json的BSON格式。

亿速云在今年春节期间,新上线了三个“云数据库”的产品和服务:云数据库MySQL、云数据库Redis以及云数据库Memcached。其中,云数据库MySQL是一种即开即用、稳定可靠、可弹性伸缩的“在线数据库服务”,具有多重的安全防护措施和完善的性能监控体系,并提供专业的数据库备份、恢复及优化方案。除了云数据库MySQL属于“关系型数据库”外,云数据库Redis云数据库Memcached,都属于“非关系型数据库”,它们是一种即开即用、稳定可靠的高性能数据缓存服务,支持“主从热备”,提供“自动容灾切换、实例监控、在线扩容”等功能。