所以,我有如下代码:
cache = {}
def fetch_data(keys):
vals_in_cache, keys_to_fetch = check_cache(keys)
new_vals = fetch_data_from_api(keys_to_fetch)
update_cache(new_vals) # add these k,v in cache
# new_vals = {key:val ..} dict
all_vals = vals_in_cache.update(keys_to_fetch)
return all_vals
def check_cache(keys):
vals_in_cache, to_fetch = {}, []
for key in keys:
if key in cache:
vals_in_cache[key] = cache[key]
else:
to_fetch.append(key)
return vals_in_cache, to_fetch
很显然,这是一个哑缓存。 我想使用LRU缓存或更合适的方法。 但是,我的问题是fetch_data_from_api调用接受list作为参数,并且由于该调用是通过网络进行的。因此最好一次性获得所有值,而不是多次调用api ... 另外,这种方法每次都很慢...我必须遍历键..以弄清缓存中的内容和要获取的内容
我想要的是。一种快速的方法来检查多个键并在高速缓存中获取其值..然后将高速缓存中不可用的内容分离出来,以便我可以调用以获取数据? 然后还更新缓存...