需求是在缓存最近一周内用户所有消息列表,考虑用Redis 存储:为每个存储一个独立Sorted Set,value 为消息体,Score 为MessageId,用以实现增量消息同步. 问题就来了:Sorted Set 怎么清理? -设计内存容量只允许放一周内最新的,太久了缓存意义不大,太浪费. -再者存在百万级/s群发请求,不允许写入时触发清理. 理想模型:如果使用磁盘则使用MyIsam堆表,数据按照顺序写入,再建立以uid为索引,删除却是完全顺序的.内存里面的话Hash 表 + RB 树两个维