1.对于不需要实时更新但对数据库消耗极大的数据,哪些数据可以放在缓存中。比如网站上的产品销量榜单,这种数据一天可以统计一次,用户不会关注是否实时。需要实时更新,但更新频率不高的数据。比如一个用户的订单列表,他肯定希望能够实时看到自己下的订单,但是大部分用户下单的频率并不高。在特定时间访问并经常更新的数据。此类数据的典型示例是尖峰。在尖峰时刻,可能会有N倍于平时的流量进来,系统压力会很大。但是这种数据使用的缓存不能和普通的缓存一样。这种缓存一定要保证不丢失,否则会出大问题。二、redis为什么这么快1、它完全基于内存,大部分请求都是纯内存操作,速度非常快。数据存储在内存中,类似于HashMap,HashMap的优点是查找和运算的时间复杂度为O(1);2、数据结构简单,数据操作也简单。Redis中的数据结构是经过特殊设计的;3、采用单线程,避免不必要的上下文切换和竞争条件,不存在多进程或多线程切换导致的CPU消耗。无需考虑各种锁,没有释放锁的操作,没有因可能出现的死锁而导致的性能消耗;4.采用多路I/O复用模型,非阻塞IO;5、使用不同的底层模型,它们之间的底层实现方式和与客户端通信的应用协议不一样,Redis直接自己搭建了VM机制,因为一般的系统调用系统函数的话,会浪费一定的量移动和请求的时间;3、为什么要用缓存redis缓存,为什么要用缓存?例如,如果系统数据库中有2000万条用户信息,用户信息基本固定。一旦输入很少变化,那么每次加载所有的用户信息,如果你要请求数据库,数据库编译执行你的查询语句,那么效率就会低很多,对于这种信息变化不频繁,数据量大的情况,通常的做法是在每次fetch前先加入缓存中判断。如果缓存不为空,则从缓存中取值。如果为空,再去请求数据库,并将数据加入到缓存中,大大提高了系统访问效率。四、redis的特点是快,因为数据存在于内存中,支持丰富的数据类型,比如string、list、set、sortedset,hash支持事务和操作,都是原子的,特点丰富:可以用于缓存、消息、过期时间可以按键设置。Redis过期后会自动删除。它可以持久化它的数据,只记录最近面试别人经常问到的redis概念,容易忘记。扫描二维码关注我,了解更多面试技巧↑↑
