开发者学堂课程【Redis入门到精通(基础篇):redis 入门-redis 简介】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/764/detail/13367
redis 入门-redis 简介
内容介绍
一、Redis 简介
二、Redis 的应用
一、Redis 简介
Nosql 已经介绍了,我们讲的是 Nosql 的具体体现——redis。
Redis
概念:
Redis(REmote DIctionary Server)是用C语言开发的一个开源的高性能键值对(key-value)数据库。
远程字典服务,重点是在字典,给我们提供字典的功能,开源,可以自己进行调试的键值对数据库。
对Java有一定了解的那么就知道有一个模型,一种存储结构——map映射,日常中键值对特别多,例如你对应你自己的名字,这就是最常见的键值对,一个名称对一个东西,一个名称对一个人、一条路、一瓶饮料等等,都是键值对关系。一个名称找到一个人,redis就是这样一个键值对的数据库,就是一个名字对应一个数据库。
跟 MySQL 不同,没有那些库、表、字段、里面的数值等等,看上去比较暴露,这也就是他的性能高的原因,了解过后简单说一下特征以及整体认识。
特征:
1、数据间没有必然的关联关系;
2、内容采用单线程机制进行工作;
3、高性能。官方提供测试数据,50个并发执行110000次/s,写的速度是81000次/s;
4、多数据类型支持;
字符串类型 |
String |
列表类型 |
List |
散列类型 |
Hash |
集合类型 |
Set |
有序集合类型 |
Sorted_set |
5、持久化支持。可以进行数据灾难恢复。
数据库关于弱势,分析出来就需要解决这个问题;单线程问题就是处理一个问题一个接一个来,原则性较强,就可以保证很多安全性的东西;
官方测试数据需要这么多数据,需要这么快,要有特点,redis性能还是比较高的,后面集群方面会有一定漂浮,而且需要技术够好,否则高性能也无法体现;数据存储到硬盘中,可以使得突发状况例如断电情况等,数据得以保存,以免造成不必要的损失,持久化并不是主要推广的东西。
二、Redis 的应用
(1) 为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等的高访问量信息等;
(2) 任务队列,如秒杀、抢购、购票排队等;
(3) 即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等;
(4) 时效性信息控制,如验证码控制,投票控制等;
(5) 分布式数据共享,如分布式集群架构中的 session 分离;
(6) 消息队列。
并不是说这个数据是热点,而是这个数据变成了热点;重要特征就是任务队列,消息队列等,使用队列形式进行应用;一些即时性的信息,使用自身的缓存技术,然后进行快速刷新,加速展示,保证实时性;然后就是一些数据的暂时性有效,例如验证码等。