使用template调用方法,返回值都是object类型
因为opsForHash的时候,会返回具体的redis默认操作类,可以指定范型类的HashOperations<K, HK, HV>
所以在操作hash之前,需要将<K, HK, HV>换成自己需要的String
@Component
@ConditionalOnBean(RedisTemplate.class)
public final class RedisUtil implements ApplicationContextAware {
private static RedisTemplate<String, Object> redisTemplate;
private static HashOperations<String, String, String> stringHashOperation;
//防止new创建
private RedisUtil(){}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.redisTemplate = (RedisTemplate<String, Object>) applicationContext.getBean("redisTemplate");
this.stringHashOperation = redisTemplate.opsForHash();
}```
指定HashOperations均为String
下面看操作
```java
public static String hget(String key, String item) {
return stringHashOperation.get(key, item);
}```
返回了String类型,搞定