浅谈一下缓存策略以及memcached 、redis区别

缓存策略三要素:缓存命中率   缓存更新策略  最大缓存容量。衡量一个缓存方案的好坏标准是:缓存命中率。缓存命中率越高,缓存方法设计的越好。 

三者之间的关系为:当缓存到达最大的缓存容量时,会触发缓存更新策略,而缓存更新策略影响到了缓存命中率。可见,缓存方案的好坏依赖于缓存最大量的设置,以及缓存更新策略的选择。

 对于经常变动的数据,不适合做缓存。对于静态、读写比高(一般10:1以上)的数据做缓存。

常见的缓存更新策略有:

1 FIFO 队列,先进先出,典型应用:MySQL的 query cache,采用的就是这种简单的缓存更新策略

2 LFU:最少使用 ,借助计数器实现

3 LRU:最久未被使用,借助计数器和队列实现

 

 

注意,当到达内存上限时,redis是可以开启虚拟内存的,将数据交换至硬盘。不过redis2.6之后的版本,已经不再提倡使用虚拟内存,太影响性能了。

redis内存达到上限时,会再也存不进去数据的,报错。

 

memcached 的缓存更新策略是LRU算法,默认就是,无法选择。

redis的缓存更新策略较为丰富,有三种,需要自己配置。

缓存过期时淘汰策略:

memcached的过期数据不会立即从内存删除,而是读取的时候判断是否过期,过期则删除。这样避免类似一个守护进程去时时刻刻删除过期数据

redis读取的时候会判断是否过期,过期则删除。除此之外,redis还会定期清理过期数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值