目录
Redis简介
Redis在内存中存储数据
Redis数据库中的应用
Redis缓存中的应用
Redis消息中心件
尾言
Redis简介
如下是Redis官网中,对Redis的一段形貌
在这段形貌中,我们提取如下关键要点:
- Redis主要用于在内存中存储数据
- Redis可以当成缓存利用
- Redis可以当成数据库利用
- Redis可以当成消息中心件利用
基于上述要点,我们接下来开端认识一下Redis
Redis在内存中存储数据
提起这个题目,可能会很希奇,所谓的在内存中存储数据,难道不可以定义变量吗?定义变量不就是在内存中存储数据吗?
实际上,Redis在内存中存储数据主要应用于分布式系统中
若是单机环境下,我们在语言中通过定义变量的方式是一种更优的选择
回忆一下:我们说进程之间是具有隔离性的,即一个进程想直接访问另一个进程的内存和数据是不可能的,但分布式系统中就肯定要求了一个进程能访问另一个进程的内存数据。
为相识决进程的隔离性带来的题目,我们引入了进程间通讯的技能
而在当今互联网中,最常用于进程间通讯的技能是网络
以是Redis的功能之一就是基于网络实现分布式系统下的进程间通讯的技能
Redis数据库中的应用
Redis可以应用于数据库范畴,我们应该知道,数据库如今最广泛利用的是MySQL,那么Redis与他相比有哪些上风,又有哪些劣势呢?
Redis vs MySQL : 上风
Redis与MySQL相比,最大的上风就是快!
我们都知道MySQL是把数据存储到硬盘上的,而Redis是把数据存储在内存中的,根据冯诺依曼体系布局我们知道,访问内存中的数据肯定比访问外设上的数据要快的多!
Redis vs MySQL : 劣势
在当今的互联网公司中,固然有很大一部分对于访问数据的效率要求比力高,但更大一部分的互联网公司对数据访问要求没那么高,Redis把数据存储到内存的方式,固然进步了访问效率,但同时也带来了内存存储的另一个弊端:存储空间大小有限
对于同样多的一组数据,存储到内存上所需要的成本肯定是比存储到硬盘中要大的。这会导致成本的进步
总的来说若对于数据访问效率没有那么高,并且想控制成本,可以利用MySQL,但若对于数据访问效率有较高的要求,那么就要用到Redis了
Redis缓存中的应用
在上述Redis作为数据库中我们相识到,若需要访问效率较高, 利用Redis。但带来的是存储成本的增加。
有没有一种方案是既可以节省成本(内存空间),又可以进步访问效率的呢?
这就不得不提到盘算机中的二八原则!
二八原则:在当今互联网中,百分之20的热门数据,已经可以满足用户百分之80的利用需求了
我们依据这个原则,可以把百分之20的热门数据存储到内存中,剩余的存量数据存储到硬盘中即可,需要的时间再拿
如许就会使得我们设计出来的系统即拥有较高的访问速率,需要的内存空间是较少的。
在这种方案中,Redis就是作为一个缓存的角色存在
但与此同时,这种设计方案也带来了如下题目:
- 系统的复杂程度大大提拔了
- 假如数据发生修改,还涉及到Redis和MySQL之间的数据同步题目
Redis消息中心件
Redis作为消息中心件(消息队列)是Redis被制造出来的初心,但后来由于颠末大量实践,发现Redis作为缓存/数据库的利用会比作为消息中心件更有效
消息中心件:分布式系统下的生产者消费者模子
一样平常我们不会利用Redis作为消息中心件,由于业界有着比Redis更良好的消息中心件利用!
尾言
通过上述的先容,我们开端相识了Redis与它的利用场景,可以发现,在上述先容中充斥着大量的分布式系统概念,以是下一期我们一起来相识一下什么是分布式!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |