gpt4 book ai didi

erlang - 限制 ETS 存储的增长

转载 作者:行者123 更新时间:2023-12-04 12:46:11 26 4
gpt4 key购买 nike

我正在考虑在一个新的 Elixir 项目中使用 Erlang 的 ETS 作为用户搜索的缓存。根据用户输入,系统将使用昂贵的第三方 API 进行查找。

为了避免对相同的用户输入进行重复调用,我打算在外部 API 前面放置一个缓存层,而 ETS 似乎是一个不错的选择。但是,由于对用户输入的变化没有限制,我担心 ETS 表所需的存储空间会无限制地增长。

在我对 ETS 的阅读中,我没有看到其他人讨论过对 ETS 中表格大小的担忧。那是因为这将是 ETS 的异常用例吗?

乍一看,我的偏好是限制 ETS 表中的条目数量,并在达到限制后拒绝(即删除)最早的条目……

是否有处理 ETS 中无限数量条目的通用策略?

最佳答案

我在生产中使用 ETS 表,就像一个带有 redis API 的“智能无效缓存”(它也有像 SQL WAL 日志一样的主-主复制)。

最大的大小是 ~ 200-300Mb,它们有超过 100 万个项目。最近2年没有任何问题。我知道限制 ERL_MAX_ETS_TABLES但没有任何关于尺寸的信息。

我有这个表的特殊“智能索引”。 ETS select/match/etc 很慢,因为这种方法传递了表中的所有元素。

关于erlang - 限制 ETS 存储的增长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39069758/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com