Zache: A Simple Ruby In-Memory Cache

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

一个月前,我遇到了一个问题:我找不到一个能够在内存中进行缓存且具有超时失效功能的 Ruby gem。经过一番快速的研究后,我决定自己实现一个,并将其命名为 Zache(意为“零缓存”,因为没有后端)。下面是它的工作原理:

首先,你需要创建缓存:

然后您通过键获取值,同时提供将在键不存在或过期时执行的代码块:

在这里,:x是键,15是它在缓存中保留的秒数,直到过期。

需要注意的是,键不会自动从缓存中删除。它将保留在那里,直到下一次调用get(:x)。只有在那时,它才会被标记为“过期”。为了清理缓存,您可以调用zache.clean(),所有过期的键都将被删除。

您可以定期在单独的线程中执行此操作,例如,每分钟执行一次:

同时,当然,Zache是线程安全的。

该宝石存放在这个GitHub代码库中。如果您发现了错误,请随时报告,或者帮助我们增加额外的功能。

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-15 at 06:44

sixnines availability badge   GitHub stars