假设我想缓存员工数据。EmployeeId 是数据库中的主键。那么,使用EmployeeId作为缓存的key可以吗?IE,
cache.put(employee.getId(), 雇员); // 雇员是雇员类的一个实例
还是密钥必须更复杂(使用某种散列算法等生成)?使用employeeId 作为缓存键有什么坏处吗?
使用employeeId 作为键没有什么害处,但最好用类似的前缀作为前缀,这样Employee
缓存中具有相同ID 的另一个对象就不会覆盖您的员工缓存条目。所以是这样的:
// employee is an instance of Employee
cache.put("Employee::" + employee.getId(), employee);
编辑:如果您为每种对象类型专用存储桶
// employee is an instance of Employee
cache.put(employee.getId(), employee);