自己写:给一个键设上期限

把 TODO 补完:存一个 3 秒后过期的键,打出刚存完时还能活几秒和过了 3 秒之后还在不在(用 / 隔开;在就打"在",不在就打"没了")。 题面里已经写好一个**迷你 Redis**(class

开始练习 →

自己写:让它扔掉最久没碰的那个

把 TODO 补完:最多放 3 个键,先存 k1/k2/k3,按顺序碰一下 k1、再碰一下 k2,再存 k4。打出被扔掉的那个键。 题面里已经写好一个**迷你 Redis**(class Mini)和一个当数据库用的 Store Mini

开始练习 →

自己写:期限和淘汰一起量

把 TODO 补完,打出设了期限的那个键还能活几秒、过期之后还剩几个键、被淘汰掉的那个键(三段,用 / 隔开)。 题面里已经写好一个**迷你 Redis**(class Mini)和一个当数据库用的 Store Mini 的时间是**步数

开始练习 →

最常见的那套缓存写法是怎样的

最常见的缓存用法是:来了请求先看手边有没有,【0】。

开始练习 →

⚠️ 有人一直查一个根本不存在的东西

有人反复来查一个数据库里根本没有的键。按上一题那套写法,会发生的是【0】。

开始练习 →

穿透该怎么挡

要挡住"反复查一个不存在的键"这种情况,最直接的办法是【0】。

开始练习 →

⚠️ 穿透:一百次全打到库上

下面这段查一个库里根本没有的键 100 次,一次不缓存"没有",一次把"没有"也存一份。打出两种情况下各去库里跑了多少趟(用 / 隔开)。 题面里已经写好一个**迷你 Redis**(class Mi

开始练习 →

自己写:把最常见那套缓存写出来

把 TODO 补完:查 u2 三次,先看缓存、没有就回源、回来存一份。打出取到的值和去库里跑了几趟(用 / 隔开)。 题面里已经写好一个**迷你 Redis**(class Mini)和一个当数据库用的 Store Mini 的时间是**

开始练习 →

自己写:把穿透挡住

把 TODO 补完:查一个不存在的键 5 次,要让去库里的次数变成 1。打出去库里跑了几趟。 题面里已经写好一个**迷你 Redis**(class Mini)和一个当数据库用的 Store Mini 的时间是**步数**:r.tick(

开始练习 →

⚠️ 自己写:缓存过期的那一瞬间

把 TODO 补完:缓存设 2 秒过期,查 3 次,中间让 2 秒过去。打出一共去库里跑了几趟。 题面里已经写好一个**迷你 Redis**(class Mini)和一个当数据库用的 Store Mini 的时间是**步数**:r.tic

开始练习 →