Memcached 具有多参数键。和性能

问题描述 投票:0回答:1

你好吗?

我现在使用

memcached
有一段时间了并且喜欢它。 在缓存后面,我通常使用
Postgress
或任何关系数据库。

在某些情况下使用缓存会使事情变得复杂。我不确定这些情况的性能成本。所以最好在这里问。

想象一下我有两个 API 的情况

  1. def all(filter_1: int = None, filter_2: int = None, filter_3: int = None)
    过滤所有结果。
  2. def update(id, data: dict)
    (更新单个项目)

on

all
我将缓存结果,例如:

  1. all()

    CACHE_KEY_ALL
  2. all(filter_1=11)
    .
    CACHE_KEY_ALL_filter_1_11
  3. all(filter_1=11, filter_3=three)

    CACHE_KEY_ALL_filter_1_11_filter_3_three

在每次

update
通话时,我都需要清除所有
all
缓存项目的缓存。

我今天所做的,在这种情况下我只是不使用任何缓存。

我的问题是性能问题。

什么更快

  1. 在这种情况下根本不使用缓存
  2. 调用
    stats items
    获取所有密钥。查找以
    CACHE_KEY_ALL
    开头的键并使每个键无效

你觉得怎么样?

🙏

performance memcached
1个回答
0
投票

我过得很好希望你也过得好。

首先,我想指出函数的命名。函数名称应该包含动词,因为这使它们更具可读性。我对 all() 命名有点困惑,所以如果您可以在函数名称中使用一些动词,这对其他开发人员来说会更好。

关于缓存问题,乍一听,使用缓存时确实涉及到更多操作。然而,所有这些操作可能仍然比调用 API 更快。因此,是否值得实现缓存的问题完全取决于(在我看来)该特定 API 是否足够快。我无权访问该 API,因此我无法明确告诉您哪个比另一个更快。

希望我的回答有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.