你这个需求叫 LRU cache, rust 有个crate叫 HashLRU,你可以直接用。
【 在 chunhui 的大作中提到: 】
: 发现标准库中的list,没办法直接删除中间的一个结点。而且rust中list本身实现还是挺复杂的。不知道有没有rust的方式来解决我这样的问题。
: 有个hash表。数据来的时候我就找到对应的node(或者插入新node),更新时间。需要定期去把hash中的很久没有更新的node删除。避免被撑爆。
: 我的办法就是。在node插入hash的同时,在一个list中记录这个node的引用。每当这个node更新了时间,就把node从list当前位置摘下来移动到list尾部。这样,这个list的头部就会是最老的那些node。然后没几秒钟去遍历一下list头部。如果过期了。就删除。
: ...................
--
FROM 114.92.200.*