使用适当的密钥进行缓存

时间:2013-08-15 21:33:32

标签: caching grails

我想要缓存员工数据。 EmployeeId是数据库中的主键。那么,使用EmployeeId作为缓存的关键是否可以?即,

cache.put(employee.getId(),employee); // employee是Employee类的实例

或者密钥必须更复杂(使用某些散列算法生成等)?使用employeeId作为缓存密钥有什么危害吗?

1 个答案:

答案 0 :(得分:1)

使用employeeId作为密钥没有坏处,但最好使用Employee之类的字符作为前缀,以便具有相同id的缓存中的另一个Object不会覆盖您的员工缓存条目。所以像这样:

// employee is an instance of Employee
cache.put("Employee::" + employee.getId(), employee);

编辑:如果您为每个对象类型专用存储桶

// employee is an instance of Employee
cache.put(employee.getId(), employee);