首先我们使用一个新的技术,我们不能为了用而用,我们要知道为什么用?
1、为什么要使用缓存?
高性能:
一个用户A发起请求,通过ServiceA请求数据库来获取数据,但是数据库的性能相比Redis的速度要慢很多,响应时间比较长,这时又有一个用户B发起一个请求,和用户A要的是同一个数据,那么正常情况下我们又要去查询一遍数据库,然后再返回给用户,那么我们想一想,如果有很多用户都要去查询这一条数据,都去数据库查,响应都很慢,那么就降低了用户体验。
加入Redis缓存后,我们将用户A查询都数据放到Redis缓存中,那么接下来到用户再去查询这条数据到时候直接先查Redis缓存中是否存在这条数据,那么我们直接就返回给用户就可以了,不需要再去查数据库了,Redis响应速度极快这样就提高了用户体验感。
高并发:
mysql数据库对高并发支撑并不是很高,加入Redis后,Redis是基于内存对,内存对读写速度很快,redis使用是多路复用技术,可以处理并发连接,redis是单线程的,可以省去很多上下文切换的时间;
2、Redis的线程模型是什么?
3、Redis的数据结构及其作用
String:普通的get和set,简单的kv缓存5、Redis的过期策略有哪些?内存淘汰机制有哪些?
过期策略:定期删除+惰性删除
定期删除:是指Redis会每隔100ms会随机抽取一些设置了过期时间的key进行扫描,看是否已经过期,如果已经到达过期时间就进行删除
惰性删除:是指因为Redis的定期删除是进行随机抽取的一些设置了过期时间的key进行删除,难免会漏掉一些已经过期但是没有被定期删除扫描到的key,那么这些key在你去获取它的value的时候,redis就会发现这个key已经过期了,就不会给你返回任何结果,并将这个key给删除。
淘汰机制:
noeviction:当内存不足以容纳新写入数据时,新写入操作会报错,这个一般没人用吧欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |