【Java】Redis存储和获取泛型

需求:在实际开发过程中,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);
    }
}

这样就很方便的存储多种类型的数据了。

相关推荐
乾坤瞬间9 分钟前
【Java后端进行ai coding实践系列二】记住规范,记住内容,如何使用iflow进行上下文管理
java·开发语言·ai编程
迦蓝叶11 分钟前
JAiRouter v1.1.0 发布:把“API 调没调通”从 10 分钟压缩到 10 秒
java·人工智能·网关·openai·api·协议归一
掘金安东尼12 分钟前
Transformers.js:让大模型跑进浏览器
开发语言·javascript·ecmascript
不知道累,只知道类12 分钟前
记一次诡异的“偶发 404”排查:CDN 回源到 OSS 导致 REST API 失败
java·云原生
lang2015092812 分钟前
Spring数据库连接控制全解析
java·数据库·spring
jinmo_C++17 分钟前
数据结构_深入理解堆(大根堆 小根堆)与优先队列:从理论到手撕实现
java·数据结构·算法
克莱恩~莫雷蒂28 分钟前
Spring Boot 中 controller层注解
java·spring boot·后端
im_AMBER30 分钟前
React 05
开发语言·前端·javascript·笔记·学习·react.js·前端框架
showker32 分钟前
ecstore等产品开启缓存-后台及前台不能登录原因-setcookie+session问题
java·linux·前端
Excuse_lighttime1 小时前
排序数组(快速排序算法)
java·数据结构·算法·leetcode·eclipse·排序算法