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

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

相关推荐
dapeng28707 分钟前
多协议网络库设计
开发语言·c++·算法
浅浅的小草8 分钟前
APM使用LUA脚本发送实现遥控器PWM信号输出CAN协议信号
开发语言·apm
星空露珠14 分钟前
又双叒叕统计被炸死的lua脚本
开发语言·数据结构·算法·游戏·lua
luanma15098018 分钟前
Spring 框架——@Retryable 注解与 @Recover 注解
java·前端·spring
阿Y加油吧19 分钟前
力扣打卡——day01
java·算法·leetcode
码路飞23 分钟前
Java 25 发了但更让我兴奋的是这个:Spring AI 让 Java 调大模型终于不用手写 HTTP 了
java·人工智能·spring
sinat_2554878131 分钟前
transient 修饰符·学习笔记
java·开发语言·spring
jwn99931 分钟前
SQL Server2019下载及安装教程
java
阿猿收手吧!33 分钟前
【C++】建造者与代理模式实战解析
开发语言·c++·代理模式
虚拟世界AI1 小时前
Java服务器开发:零基础实战指南
java·servlet·tomcat