【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);
    }
}

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

相关推荐
Geoking.2 分钟前
【Java】深入理解 Java 枚举(Enum)
java·开发语言
老王熬夜敲代码13 分钟前
C++新特性:string_view
开发语言·c++·笔记
像风一样的男人@14 分钟前
python --生成ico图标
java·python·spring
zhaokuner15 分钟前
06-聚合与一致性边界-DDD领域驱动设计
java·开发语言·设计模式·架构
lsx20240625 分钟前
Ionic 卡片组件深度解析
开发语言
技术小泽26 分钟前
DDD领域设计精讲
java·后端·设计模式·架构
多打代码27 分钟前
2026.1.2 删除二叉搜索树中的节点
开发语言·python·算法
一路往蓝-Anbo30 分钟前
STM32单线串口通讯实战(二):链路层核心 —— DMA环形缓冲与收发切换时序
c语言·开发语言·stm32·单片机·嵌入式硬件·物联网
萧曵 丶32 分钟前
MQ 业务实际使用与问题处理详解
开发语言·kafka·消息队列·rabbitmq·rocketmq·mq
kylezhao201938 分钟前
第三节、C# 上位机面向对象编程详解(工控硬件封装实战版)
开发语言·前端·c#