标签:
现在给的模式是这样,在高并发的情况下,使用缓存减少对数据库的交互,从而提高速度。
那就是在数据库中读取一些常用的数据作为缓存,放到相关的服务器中。用户操作的数据以缓存中的数据为主,数据库只作为辅助作用。
问题:
什么时候缓存数据:(答不上来)
缓存一般存什么数据:存一些在特定的时间点不改变的,使用率高的数据
存多久:看数据的类型而定,不怎么改变的or改变频率高的
什么样的数据需要存入数据库中:(答不上来)
缓存与数据库交互的时机:在缓存框架中使用监听器(满足你指定的条件,如缓存达到了多少G...)
清理缓存的时机:定期对缓存中的数据进行采样,清理掉一些不常用的数据
使用此模式的优缺点:
优点:减少对数据库的交互,获取数据的速度快
缺点:服务器宕机则缓存数据丢失-----------备份缓存数据则提高成本
以上的问题,回答都是自己整理的,肯定有不足之处或者是错的地方,还有一些答不上来,希望知道的大牛能不吝赐教!谢谢!
评论内容:
评论1:
如果系统并发量很大,并且数据库已经到了瓶颈了,可以考虑缓存。
关于缓存存多久,应该跟业务逻辑结合,有些数据不经常变,可以存很长时间,有些相对来说变动频繁的,可以存时间短一些。
而有些数据是不能缓存的,例如,用户支付信息,涉及到钱相关的,都不能缓存。
如果使用Memcached或Redis的话,这种缓存系统是可以把数据定期缓存到文件系统,就算宕机重启,也可以一定程度上恢复之前的缓存数据。
1. 收到请求,先查询缓存,查询不到,查询磁盘(MYSQL等数据库),查询出来,把数据放入缓存,便于下一次请求使用
2. 缓存预热,对于比较变化小,查询量大的数据,可以服务启动前把数据先 load 到 cache,名为预热
3. 对于 MC(memcached)尽量使用一致性 hash 算法,避免MC服务器down机,缓存大面积的失效。
4. 使用缓存集群,缓存分布在多个服务器上,增加可用性
标签:
原文地址:http://www.cnblogs.com/rainy-shurun/p/5403435.html