尝试使Redis Entries Environment特定于dev,qa和uat。这样一个通用的Redis Cache环境可以在各种环境中使用。
当前缓存键条目如下: empCache :101_Abcd
想要如下所示的键: empCache:dev :101_Abcd, empCache:uat :101_Abcd
要求:
- CRUD操作。
- 如果清除/更新了Dev缓存,则不会影响qa和uat等其他环境的条目。
当前代码
EmpBean
@RedisHash("empCache")
//Want to set RedisHash key as "empCache" + Spring Profile (like dev,qa,uat)
public class EmpBean implements Serializable {
private static final long serialVersionUID = 1L;
@Id
String empCacheKey;
/*EmpId*/
private int empId;
/*EmpName*/
private String empName;
}
Repository
---------------------------
@Repository
public interface EmpRepo extends CrudRepository<EmpBean, String> {}
如果我尝试添加引用以从应用程序属性中读取Spring Boot配置文件,则会出现编译错误。
The value for annotation attribute RedisHash.value must be a constant expression
答案 0 :(得分:0)
最终使用jedis实现相同效果-
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<type>jar</type>
</dependency>
代码示例如下。
try (Jedis jedisRef = new Jedis(env.getProperty("spring.redis.host"))) {
String empKey = "empCache" + "::" + dev + "::" + "customKeyName";
jedisRef.setex(empKey, expiry,
stringToSave);
}