需求:在实际开发过程中,Redis需要存储不同类型的值,创建一个泛型工具类,用于包装 RedisTemplate
,使其支持泛型进行存储和获取,下面就写一个栗子进行演示。
RedisUtils:
java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class RedisUtils {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public <T> void saveList(String key, List<T> list) {
//redisTemplate.opsForList().leftPush(key, list);
redisTemplate.opsForValue().set(key, list);
}
public <T> List<T> getList(String key) {
//return (List<T>) redisTemplate.opsForList().range(key, 0, -1);
return (List<T>) redisTemplate.opsForValue().get(key);
}
}
假设有一个 UserService
的服务实现类需要redis进行存储和获取数据:
java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private RedisService redisService;
@Override
public void saveUsers(String key, List<User> userList) {
redisService.saveList(key, userList);
}
@Override
public List<User> getUsers(String key) {
return redisService.getList(key);
}
}
这样就很方便的存储多种类型的数据了。