|NO.Z.00001|——————————|BigDataEnd|——|Hadoop&Redis.V01|——|Redis.v01|缓存原理设计.v01|

一、缓存基本思想
### --- [缓存的原理设计]

~~~     [缓存的基本思想]
~~~     [缓存的优势和代价]
~~~     [缓存的读写模式]
### --- 什么是缓存?

~~~     缓存原指CPU上的一种高速存储器,它先于内存与CPU交换数据,速度很快
~~~     现在泛指存储在计算机上的原始数据的复制集,便于快速访问。
~~~     在互联网技术中,缓存是系统快速响应的关键技术之一
~~~     以空间换时间的一种技术(艺术)
二、缓存的使用场景
### --- DB缓存,减轻DB服务器压力

~~~     一般情况下数据存在数据库中,应用程序直接操作数据库。
~~~     当访问量上万,数据库压力增大,可以采取的方案有:
~~~     读写分离,分库分表
~~~     当访问量达到10万、百万,需要引入缓存。
~~~     将已经访问过的内容或数据存储起来,当再次访问时先找缓存,缓存命中返回数据。
~~~     不命中再找数据库,并回填缓存。
### --- 提高系统响应

~~~     数据库的数据是存在文件里,也就是硬盘。与内存做交换(swap)
~~~     在大量瞬间访问时(高并发)MySQL单机会因为频繁IO而造成无法响应。MySQL的InnoDB是有行锁
~~~     将数据缓存在Redis中,也就是存在了内存中。
~~~     内存天然支持高并发访问。可以瞬间处理大量请求。
~~~     qps到达11万/S读请求 8万写/S
### --- 做Session分离

~~~     传统的session是由tomcat自己进行维护和管理。
~~~     集群或分布式环境,不同的tomcat管理各自的session。
~~~     只能在各个tomcat之间,通过网络和Io进行session的复制,极大的影响了系统的性能。
~~~     1、各个Tomcat间复制session,性能损耗
~~~     2、不能保证各个Tomcat的Session数据同步
~~~     将登录成功后的Session信息存放在Redis中这样多个服务器(Tomcat)可以共享Session信息。
三、Redis的作用是数据的临时存储
### --- 做分布式锁(Redis)

~~~     一般讲锁是多线程的锁,是在一个进程中的
~~~     多个进程(JVM)在并发时也会产生问题,也要控制时序性
~~~     可以采用分布式锁。使用Redis实现 sexNX
~~~     做乐观锁(Redis)
~~~     同步锁和数据库中的行锁、表锁都是悲观锁
~~~     悲观锁的性能是比较低的,响应性比较差
~~~     高性能、高响应(秒杀)采用乐观锁 (CAS)
~~~     Redis可以实现乐观锁 watch + incr

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on 2022-04-08 15:37  yanqi_vip  阅读(30)  评论(0)    收藏  举报

导航