1 、在项目中缓存是如何使用的?
2、为啥在项目里要用缓存呢?
用缓存,主要用途,高性能和高并发
高性能:
场景举例:假如有这么一个操作,用户发起请求,操作数据库,查出结果,耗时600ms,然后这个结果,在一段时间内都不会改变,或者说改变了也不用立即向用户反馈,那么这个时候就可以用缓存了,把查出来的结果直接放到缓存里,下次再有人来请求,就直接在缓存里通过key value键值对给到用户,性能提高!
简单的说就是,把一个复杂耗时的操作的结果,后面不怎么需要改变的结果,但是有很多的读取操作,就可以使用缓存,后面读取的时候直接从缓存中读就可以了。
高并发:因为数据库不支持高并发,像mysql最高也就支持到2000,然后我们把数据放到缓存中去,轻轻松松的十几万的并发,是mysql的几十倍。
3 、使用缓存有什么缺点?
1)缓存与数据库双写不一致
2)缓存雪崩
3)缓存穿透
4)缓存并发竞争
4、redis和memcached有什么区别?
redis:线程模型是单线程NIO异步的工作模型。
数据结构 :redis拥有更多的数据结构和更多的数据结构,很多复杂的操作跟高效
2.集群redis官方就是支持redis cluster集群模式,而menacahe不支持,需要依赖客户端。
5、redis都有哪些数据类型?
String
用来抢购,用来限制库存数量做一个计数器,就可以用string类型
分布式锁
string类型的setnx的作用是“当key不存在时,设值并返回1,当key已经存在时,不设值并返回0”,“判断key是否存在”和“设值”两个操作是原子性地执行的,因此可以用string类型作为分布式锁,返回1表示获得锁,返回0表示没有获得锁。
list
是一个有序列表,
可以用来做简单的点对点消息队列,和可以用来做粉丝列表,评论列表ÿ