Redis(一) Redis的介绍
2020-03-28 本文已影响0人
honest涛
作者:毕涛涛,致力于Java学习的践行者。原创文章,转载请注明出处。
NoSQL的概述
什么是NoSQL
- NoSQL = Not Only SQL
- 非关系型数据库
为什么需要NoSQL
随着互联网的发展,它经历了web1.0与web2.0的两个阶段。
web1.0指的就是:类似于新浪、网易早期的时候,我们只能打开浏览器去浏览它里面的新闻,不能进行相应的互动。
那么,进入web2.0的时候,它已经可以进入我们之间的一个互动了。就像你的朋友圈,像你的新浪微博,它都是可以跟你进行互动的。就是我可以对你的进行评论,点赞等互动性操作。那么随着互联网web2.0的兴起,非关系型数据库现在成了一个非常热门的新的领域了。那么非关系型数据库产品,它的发展也是非常迅猛的。而我们传统的关系型数据库在应付web2.0这种网站的时候,特别是超大规模、高并发的一些SNS类型的web2.0的动态网站已经力不从心了。而且暴露出很多难以克服的问题。
这里面就会暴露出来,比如:
- High performance - 高并发读写
在web2.0网站,它需要根据我们用户个性化的信息,来实时的生成动态页面和提供动态的信息。所以基本上无法使用动态的这种页面的静态化技术,因此数据库的并发负载就非常高了。就是,我们非常多的用户在同时使用新浪微博、朋友圈啊,在里面经常发动态,并评论回复之类的动态操作。这时候,你数据库承载的能力就达不到要求了。往往我们每秒会出现上万次的读写的一个需求。那么关系型数据库在应付上万条SQL语句时,查询还能勉强接受,但是应付上万条SQL的写的操作就力不从心了。
- Huge Storage - 海量数据的高效率存储和访问
- High Scalability && High Availability - 高可扩展性和高可用性
NoSQL数据库的四大分类:
- 键值(key - value )存储
- 列存储
- 文档数据库
- 图像数据库

NoSQL的特点:
- 易扩展:NoSQL数据库种类非常多,但是一个共同的特点都是去掉了关系型数据库里面的那些关系了,然后数据库之间是没有关系的。
- 灵活的数据模型:对于大数据量与高性能的读写是非常灵活的。无需事先对存储的数据建立一些字段。
- 大数据量,高性能
- 高可用
Redis的概述
Redis它其实是用C语言开发一个开源的、高性能的键值对的数据库,它通过提供多种键值数据类型来适应不同场景下的存储需求。
目前为止,Redis支持的数据类型有很多种,比如:
- 字符串类型 string
- 列表类型 set
- 有序集合类型 zset
- 散列类型 hash
- 集合类型 list
官方提供了一些测试数据:就是由50个并发程序来执行10万次请求,那么redis它的读速度能达到每秒11万次,写的速度能达到每秒8万1千次。
Redis的应用场景
- 缓存
- 任务队列
- 应用排行榜
- 网址访问统计
- 数据过期处理
- 分布式集群架构中的session分离