我将键值对存储在数据库中,可以通过webservice访问。请求包含country,district,terminal,webservice返回映射到这些值的值。 数据库可能包含映射到国家/地区的记录,还有映射到区域等的记录,例如:
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 etc会返回相同的列表,但是对于这两个输入记录,缓存会包含两次...
另一个选择是只读取国家/地区特定记录,然后读取区域特定记录并合并两个列表...
您是否有任何其他想法可以让cachin成为可能 感谢
答案 0 :(得分:1)
根据我的缓存经验,在键/值缓存系统中使用输入参数作为缓存键是很常见的做法。
所以尽管DE,D3和DE,D4可能会返回相同的对象,但这应该没问题。使用缓存系统,我不会害怕不止一次存储同一个对象。谁知道,将来输入可能会在未来返回不同的值。
我只是使用输入来创建密钥并缓存存储过程输出。你可以获得像Memcached或Redis这样的分布式缓存,如果你担心空间,可以很容易地存储大量数据。