首页 专题 文章 代码 归档
Redis 简介
2020.04.03 10:20 2020.04.03 13:18

1. NoSQL

NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。

在现代的计算系统上每天网络上都会产生庞大的数据量。这些数据有很大一部分是由关系数据库管理系统(RDMBS)来处理。

1970年 E.F.Codd's提出的关系模型的论文 "A relational model of data for large shared data banks",这使得数据建模和应用程序编程更加简单。

通过应用实践证明,关系模型是非常适合于客户服务器编程,远远超出预期的利益,今天它是结构化数据存储在网络和商务应用的主导技术。

NoSQL 是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。


传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:

1、High performance:对数据库尚并发读写的需求I web2.0网站萎根据用户个性化信息来实时生成动态贡面和得供动态信息,所以基本上无法使用动态页面静态化技术,国此数最庄并发负捉非常高,往往要达到每秒上万次读写简求,关系数据在应付上万次5QL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘I0就已经无法承竞了,其实对于普通的BBS网站,往往也存在对高并发写请求的需求,例如网站的实时统计在装用户状态,记象热门帖子的点击次数,投累计数等,国此这是一个相当管遍的需求。

2、Huge Storage:对海量散据的高效率存储和访问的需求 类似Facebook,twitter,Friendfeed这样的SNs网站,每天用户产生海量的用户动态,以Friendfeed为例,一个月就达到了2.5亿条用户动态,对于关系数据库未说,在一张2.5亿条记录的表里面进行SQL直询,效率是极其低下乃至不可忍受的。再例如大型web网站的用户登录系统,例如膨讯,盛大,动颗激以亿计的帐号,关系数据座也很难应付。

3、High Scalability&&High Availability-对数据底的商可扩展性和高可用性的需求在五于web的架构当中,数据底是最道进行桶向扩晨的,当一个应用系统的用户至和访问至与日俱增的时候,你的数据底却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节底来扩展性能和负载能力,对于很多雨要提供24小时不问断服务的网站来说,对数据库系统进行升级和扩展是非常隔营的事情,往往需要停机维护和数据迁移为什么数端本不能通过不断的添加服务器节点来实现扩展呢?


NoSQL类别:

1、键值(Key-Value)存储数据库

2、列存储数据库

3、文档型数据库

2. Redis

什么是Redis?

Remote Dictionary Server(Redis) 远程字典服务器是完全开源免费的,用C语言编写的,遵守BSD开源协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行,并支持持久化的NoSQL数据库,它也通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

与传统数据库不同的是 Redis 的数据是存在内存中的,所以存写速度非常快,因此 Redis 被广泛应用于缓存方向。Redis为分布式缓存,在多实例的情况下,各实例共用一份缓存数据,缓存具有一致性。

Rediis 与其他 key - value 缓存产品有以下三个特点:

  1. 性能极高 – Redis读的速度是11W次/s,写的速度是81K次/s
  2. 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  3. 丰富的数据类型,Redis不仅仅支持简单的key-value类型的数据,同时还提供Strings, Lists, Hashes, Sets 及 Ordered Sets 等数据结构的存储。
  4. 支持数据的备份,即master-slave模式的数据备份。

什么数据会存到redis数据库中?

主要是热点数据,不会经常改变的,一般是常量

比如登录验证的cookie,购物车,历史浏览记录都(只要具有一定时间的生命周期)

比如首页的商品信息,一般不会变。

比如秒杀的商品信息,一般也不会变。

比如地图的经纬度信息,一般也不会变。

用户的关注列表,粉丝列表,消息列表等功能都可以用 Redis 的 List 结构来实现

Redis 可以非常方便的实现如共同关注、共同粉丝、共同喜好等功能(Set 类似与列表,但可自动排重的)

Redis不但提供了无需集合(Sets),还很体贴的提供了有序集合(Sorted Sets),因此,各种排行榜数据基本上都会使用Redis提供的Sorted Sets来实现

本节阅读完毕! (分享
二维码图片 扫描关注我们哟