首页 >

redis为什么把数据放到内存中 – 数据库 – 前端|

爱奇艺15元会员怎么开,tm域名证书怎么领取,苹果手机怎么用蓝牙传视频redis为什么把数据放到内存中 - 数据库 - 前端|redis为什么把数据放到内存中

当然是为了读取快呀。Redis诞生之后,就被作为memcached接班人而寄予厚望,而不是做数据持久层的产品。据偶了解,不止是BAT,现在很多外企也在使用redis来做缓存。

为什么要用redis做缓存,当然是因为它强大的快速读取能力。

接下来大家简单分析,redis为什么能够这么快的读取,自然也就明白,为什么redis的设计者要把数据放在内存中。

单线程的Redis

BAT的一个对redis有很深了解的高级工程师曾经说过,redis就是如果所有数据都在内存里,那么单线程是效率最高的。为什么这么说呢,多线程的本质是CPU模拟出多个线程去操作,但是模拟是有代价的,学过操作系统的朋友应该知道,多线程之间切换是要切换上下文的,这也是对时间的一种消耗。所以,对于单处理器来说,当然是单线程,无切换才是最高效率的。redis就是用一块CPU绑定了一块内存,然后对数据的操作都是在这块内存上进行的,基于此,单线程的redis已经达到了效率最大化。

IO多路复用

Redis能够实现快读取的另一个原因就是实现了IO多路复用。举个例子来辅助理解,在餐馆吃饭,通常是入座后自己看菜单,等到有需要的时候,喊服务员来帮你下单。就算饭店是满员的,不考虑上菜这个环节对服务员的消耗,这个时候,1个服务员也是足够为多个餐桌服务的。这个场景,就算多个餐桌对一个服务员的复用,与为每个餐桌配一个服务员比起来,明显节约了人力资源,也减少了由于服务员过多时,与后台通信时排队的等待时间。

进一步说,如果下完单,菜就在后厨制作,然后由服务员直接去点菜台拿,当然要比服务员还要跑到隔壁(数据存储在MySQL或者ES)去拿要快得多。

所以,数据当然还是放在缓存(厨房),而不是持久层(别人家厨房)里快。

以上是偶的浅见,欢迎各位在下方评论与偶交流。

偶是苏苏思量,来自BAT的Java开发工程师,每日分享科技类见闻,欢迎关注偶,与偶共同进步。

爱奇艺15元会员怎么开,tm域名证书怎么领取,苹果手机怎么用蓝牙传视频redis为什么把数据放到内存中 - 数据库 - 前端|


redis为什么把数据放到内存中 - 数据库 - 前端|
  • mysql用as查询,那你们靠什么盈利呢 - 数据库 - 前端,数据库原理mysql储存过程
  • mysql用as查询,那你们靠什么盈利呢 - 数据库 - 前端,数据库原理mysql储存过程 | mysql用as查询,那你们靠什么盈利呢 - 数据库 - 前端,数据库原理mysql储存过程 ...

    redis为什么把数据放到内存中 - 数据库 - 前端|
  • mysql数据库应用场景 |mysql 设置ssl
  • mysql数据库应用场景 |mysql 设置ssl | mysql数据库应用场景 |mysql 设置ssl ...

    redis为什么把数据放到内存中 - 数据库 - 前端|
  • mysql数据库应用哪方面 |zabbix node.js mysql
  • mysql数据库应用哪方面 |zabbix node.js mysql | mysql数据库应用哪方面 |zabbix node.js mysql ...