NoSql非关系型数据库相关介绍—看这篇就够了~

本文介绍了NoSQL数据库的出现原因、优势以及常见产品,重点讲解了Redis的特性和应用场景,包括其高并发、丰富的数据类型和原子性操作。Redis常用于缓存、消息队列和数据排行榜等场景,支持多种数据结构如字符串、列表、集合等。

NoSql非关系型数据库学习

1、了解Nosql

1.1. Nosql概念及其出现的原因

NoSQL泛指非关系型数据库。它的出现跟当今互联网时代息息相关。

  • 在90年代时,一部电脑对于一个家庭而言略显珍贵,当然作为00后的小编也不知道90年代的互联网发展到何地。但是当时网站的访问量一般不大,用单个数据库就可以轻松应对。在那个时候的网页多为静态网页,动态交互的网页不多。
  • 到了最近10几年,网站开始快速发展。比如论坛、博客、sns等等引领web领域的潮流发展。这对于过去的服务器而言,必然需要更加高性能的工具完成更多人的访问量。不过在初期,其实论坛的访问量也不大。

现在的网络特点:

  • 高并发读写:如今的Web2.0时代,数据库并发负载非常高。往往达到一秒钟上万次的读写请求。
  • 高容量存储和高效存储:网站通常需要在后台数据库中存储海量数据。如何在已有高存储的基础上还要进行高效数据查询也是一种挑战。
  • 高扩展性和高可用性:随着系统用户量和访问量与日俱增,需要数据库很方便的进行拓展、维护。

1.2 Nosql数据库的优势

  • 易拓展:数据库种类繁多,但共同的一点都是去掉关系型数据库的关系型特征。数据之间无关系就使得非常容易拓展。
  • 大数据量、高性能Nosql具有非常高的读写性能,尤其是在大数据量下也能够表现得优秀。
  • 灵活的数据模型Nosql无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。
  • 高可用:NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。

1.3 常见的Nosql产品

在这里插入图片描述

分类相关产品应用场景数据模型优点缺点
键值数据库Redis、Memcached、Riak内容缓存如会话、配置文件、参数等<key,value>。通过散列表来实现扩展性好,灵活性高。大量操作时耗时性高数据无结构化。通常只被当做字符串或者二进制数据,只能通过键来查询
列数据库Bigtable、HBase、Cassandra分布式数据存储与管理以列族式存储,将同一列数据存在一起可拓展性强,查找速度快,复杂性低功能局限,不支持事务的强一致性
文档数据库MongoDB、CouchDBWeb应用,存储面向文档或者类似半结构化的数据<key,value>value是JSON结构的文档数据结构灵活,可以根据value构建索引缺乏统一查询语言
图形数据库Neo4j、InfoGrid社交网络、推荐系统、专注构建关系图谱图结构支持复杂的图形算法复杂度高,只能支持一定的数据规模

2、Redis介绍

2.1 什么所示Redis

Redis全称REmote DIctionary Server(远程字典服务器)。它是完全开源的,用C语言编写的,是一个高性能的(key/value)分布式内存数据库。

基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一。也被人们称为数据结构服务器。它相对于key-value缓存产品有以下三个特点:

(1)Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用

(2) Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储

(3) Redis支持数据的备份,即master-slave(主从)模式的数据备份

2.2 Redis优势

(1) 性能极高Redis能读的速度是110000次/s,写的速度是81000次/s 。

(2) 丰富的数据类型Redis支持二进制案例的 Strings, Lists, Hashes, SetsOrdered Sets 数据类型操作。

(3) 原子 (不可再分):Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

(4) 丰富的特性Redis还支持 publish/subscribe, 通知 key 过期等等特性 。

(5) 采用单线程:避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗。

(6) 使用多路I/O复用模型,非阻塞IO

2.3 Redis应用场景

  1. 缓存(数据查询,短连接,新闻内容,商品内容等),使用最多
  2. 聊天室在线好友列表
  3. 任务队列(秒杀,抢购,12306等)
  4. 应用排行榜
  5. 网站访问统计
  6. 数据过期处理(可以精确到毫秒)
  7. 分布式集群架构中的session问题

3.Redis数据结构

Redis是一种基于内存的数据库,并且提供一定的持久化功能,它是一种键值(key-value)数据库,使用 key 作为索引找到当前缓存的数据,并且返回给程序调用者。

当前的 Redis 支持 6 种数据类型,它们分别是字符串(String)列表(List)集合(set)哈希结构(hash)有序集合(zset)基数(HyperLogLog)

本文的分享暂时到这里。接下来文章会介绍下载并安装redis。谢谢大家。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xiao艾扶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值