[TOC] ## 如何提高memcache的缓存命中率 > 1. 合理组合缓存 Key,保证 Key 最大复用率。 > 2. 合理设置过期时间,减少因为缓存数据过期后被穿透 ## 数据库于缓存一致性如何实现 > 方案A (强一致性) :如果有缓存更新操作时:先删除缓存,后更新数据库。 > 方案B (最终一致性) :相对于前者,如果上亿并发流量读取时候也会出现不一致性;这时需要把`读请求`或`写请求`的`缓存回写`串行放入队列执行。 > 参考资料:https://www.bilibili.com/video/av70907504/ ## memcache和redis的区别,内存管理机制 > **数据类型**:都是k/v数据库,但memcache只支持string,redis除了string,还支持list,set,hash等数据 > **内存管理**:memcache内存用完时,会删除用得最少的缓存;redis内存用完时,会把最少的缓存交换到磁盘里。 > **持久化**:memcache不支持内存持久化,redis支持。 > >redis持久化有两种方式:RDB和AOF > >>1. **RDB** (redis db) > >> 在指定的`save m n`周期性对数据进行持久化。 m秒有n条写入记录,则进行持久化 > >> 2. AOF (appendonly filelog) > >> appendfsync everysec:每秒同步一次,意味着有最多1秒的