1

我将键值对存储在可以通过 web 服务访问的数据库中。该请求包含国家、地区、终端和网络服务返回映射到这些值的值。数据库可能包含映射到国家/地区的记录,还有映射到地区的记录等,例如:

Id Country District Key Value
1  DE      D1       K1  Dummy1
2  DE               K1  Dummy2
3  DE      D2       K1  Dummy3

因此,如果输入为 DE,D1,K1,则必须返回 dummy1,如果输入为 DE,D3,则必须返回 Dummy2,因为我们没有特定于地区的值。

我创建了一个存储过程,它返回具有最合适输入记录的列表。它的问题是我不能真正使用cahcing。

大多数记录仅分配给国家,但地区有例外,所以我想缓存列表,但键总是不同,所以

DE,D3 DE,D4 等将返回相同的列表,但缓存将包含它两次,因为这两个输入记录...

另一种选择是仅读取特定国家/地区的记录,然后读取特定地区的记录并合并两个列表...

你有任何其他想法如何使缓存成为可能吗谢谢

4

1 回答 1

1

根据我的缓存经验,将输入参数用作键/值缓存系统中的缓存键是很常见的做法。

因此,即使 DE、D3 和 DE、D4 可能返回相同的对象,也应该没问题。使用缓存系统,我不会害怕多次存储同一个对象。谁知道,将来输入可能会在将来返回不同的值。

我只会使用输入来制作密钥并缓存存储过程的输出。如果您担心空间,您可以获得像 Memcached 或 Redis 这样的分布式缓存,这将使存储大量数据变得相当容易。

于 2013-06-21T15:48:04.483 回答