RedisⅠ

NoSQL的产生

随着互联网的发展,经历了1.0和2.0的两个阶段,1.0指的就是新浪、网易早期的时候,我们只能打开浏览器去浏览里面的新闻,不能进行相应的互动,到了2.0,就已经可以进行互动了,就像朋友圈、新浪微博,即可以评论、点赞等,随着互联网web2.0的兴起,非关系型数据库成了一个非常热门的新的领域了,非关系型、分布式数据存储得到了非常快速的发展,它们不保证关系数据的ACID特性,而我们传统的数据库在应付web2.0这种网站的时候,特别是超大规模和高并发的一些sns类型的web2.0的动态网站已经力不从心了,而且暴露出很多难以克服的问题.

  • 高并发读写的问题

web2.0网站需要根据用户个性化的信息来实时的生成动态页面和提供动态的信息,所以基本上无法使用动态的页面的静态化技术,因此数据库的并发负载就非常高了,就是非常多的用户在同时使用比如新浪微博或朋友圈,发朋友圈及对朋友圈的评论进行回复,那么这个时候,数据库所承载的能力就达不到要求了,往往每s会出现上万次的读写的一个需求,那么关系型数据库在应付上万次的sql查询还勉强顶得住,但是应付上万次的sql的写操作,就很难了。其实,对于那种普通的bbs那种网站呢,往往也存在有这种高并发读写的需求,例如:网站实时统计在线人数、记录一些热门帖子的点击次数等等这些都是普遍的需求,那么,我们传统的关系型数据库就不行了

  • 海量数据的高效率存储和访问

类似于像facebook这样的sns交互型的网站,每天用户所产生的海量的用户动态,以国外的一个friendfade为例,一个月就能达到 2.5亿条用户的动态,对于关系型数据库来说,在一张2.5亿条记录的表里边进行sql的查询效率是非常低,甚至是不可忍受的,再比如一些大型的web网站,用户登录系统,如腾讯、盛大,动辄就是数亿条的账户,那么关系型数据库也是很难应付的

  • 高可扩展性和高可用性

在基于web的架构中,数据库是最难进行横向扩展的,当一个应用的用户量和访问量与日俱增的时候,你的数据库却没有办法像web服务器或者是一些应用服务器那样通过添加更多的硬件来搭建负载均衡的服务器,对于很多需要提供24小时不间断的这种服务的网站来说,对于数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护或者数据迁移。

为什么数据库不能通过不断的添加服务器的节点来实现呢?此时,nosql的产生就解决了大规模数据库集中并且数据种类不同带来的一个挑战了,尤其是大数据应用的难题

 

NoSQL概述

主流的nosql有哪些?

扫描二维码关注公众号,回复: 9010953 查看本文章

nosql数据库的四大分类:

nosql的特点:

  • 易扩展                        # 没有关系易扩展

  • 灵活的数据模型               # 对于大数据量和高性能的读写是非常灵活的,无需事先对需要存储的数据建立一些字段

  • 大数据量,高性能           # 具有非常高的读写性能

  • 高可用                        # 在不太影响性能的情况下,就可以很方便的实现高可用的一些框架

redis的由来

2008年,意大利的一家创业公司推出了一款基于MySQL的一个网站实时的统计系统,然而,没过多久,这个创始人就对MySQL的性能感到十分失望,他决定亲自为这个网站实时系统来量身定做一个数据库,于2009年开发完成了,这个数据库就是redis,这个创始人不满足只将redis用于这个产品,而是希望能有更多的人一起使用,于是在同一年他将redis开源并且发布,开始和redis的另一名主要的代码贡献者一起继续redis的开发直到现在

VMware这个公司从2010年开始赞助redis的开发,然后这两个人分别也在3月和5月的时候都加入了VMware全职进行开发redis

redis简介

  • redis是一个由C语言开发的一个开源的,支持网络、可基于内存亦可持久化的日志型,高性能的键值对数据库,并提供多种语言的API。
  • redis是开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件
  • 通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止,redis支持的数据类型有很多种:字符串类型、列表类型、有序集合类型、散列类型、集合类型。redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用
  • redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得redis可执行单层数复制。从盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,是的从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助

官方提供了一些测试的数据:有50个并发程序来执行10万次请求,那么redis读的速度能达到11万次/s,写的速度能达到81000次/s,也仅供参考

redis的应用场景

  • 缓存

数据的查询,一些新闻或商品的内容都需要把这些数据放入到缓存当中

  • 聊天式的在线好友列表
  • 任务队列 

秒杀、抢购

  • 网站访问的统计

  • 数据过期的一个处理,可精确到毫秒

  • 应用的排行榜

  • 分布式集群架构中的session分离

发布了8 篇原创文章 · 获赞 1 · 访问量 291

猜你喜欢

转载自blog.csdn.net/qq_36985354/article/details/104205832