我了解@Cacheput会调用该方法,无论如何都会更新缓存中的结果?那么,如果每次都调用此方法,为什么我们首先需要此注释?
答案 0 :(得分:1)
考虑一个使用dateparse = lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S')
df = pd.read_csv('/home/users/user/xxx.csv', parse_dates ={'date_time':[0,1,2,4]})
df['u_datetime'] = df['date_time'].values.astype(np.int64) // 10 ** 9
df_new = df[['u_datetime', 'location', 'count']]
批注简单地从数据库返回某些数据的API。而且,如果另一个api更新主数据源中的相同数据,则还需要更新缓存中的数据。在这里,对于第二个API,您需要使用@Cacheable
注释来实现。
答案 1 :(得分:1)
这是语法表达式,您要告诉spring容器启用缓存。最终它将覆盖具有相同键的任何内容。
@Cacheput将仅更新陈旧的值,因此每次都会调用该方法来更新缓存。