Springboot整合Redis步骤以及测试

本文详细介绍了如何在Spring Boot项目中整合Redis,包括Redis服务器的安装配置、依赖添加、配置文件设置、RedisTemplate的初始化、自定义Redis服务类以及单元测试的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先安装Redis服务器

ubuntu14.04的安装

windows服务下的安装

1.Redis的依赖配置,pom.xml新增以下依赖:

<!--redis缓存-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.6.2</version>
</dependency>

Gson转换json数据格式工具

2.Redis配置,application.yml新增以下配置:

spring:
  redis:
      database: 0 # Redis数据库索引(默认为0)
      host: localhost # Redis服务器地址
      port: 6379 # Redis服务器连接端口
      password: # Redis服务器连接密码(默认为空)
      timeout: 60000ms # 连接超时时间(毫秒)
      jedis:
        pool:
            max-active: 1000 # 连接池最大连接数(使用负值表示没有限制)
            max-idle: 100 # 连接池中的最大空闲连接
            max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
            min-idle: 1 # 连接池中的最小空闲连接

3.RedisTemplate的初始化

@Configuration
public class RedisConfig{

    /**
     * 对存取的字符串进行一个json格式的系列化初始配置
     *
     * @param factory
     * @return
     */
    @Bean
    public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
        StringRedisTemplate template = new StringRedisTemplate(factory);
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
        // 设置key和value的序列化规则
        template.setKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(jackson2JsonRedisSerializer);
        template.afterPropertiesSet();
        return template;
    }
}

 4.创建Redis服务类,gson将对象转换为json格式存储,需要取出数据时,再将json转换为java对象,UserInfo为实体用户User的 服务类

@Repository
public class UserRedis {
    @Resource
    private RedisTemplate<String,String> redisTemplate;


    public void add(String key,Long time,UserInfo user){
        Gson gson = new Gson();
        redisTemplate.opsForValue().set(key,gson.toJson(user),time, TimeUnit.MINUTES);
    }

    public void add(String key, Long time, List<UserInfo> users){
        Gson gson = new Gson();
        redisTemplate.opsForValue().set(key,gson.toJson(users),time,TimeUnit.MINUTES);
    }

    public UserInfo get(String key){
        Gson gson = new Gson();
        UserInfo user = null;
        String userJson = redisTemplate.opsForValue().get(key);
        if(!StringUtils.isEmpty(userJson))user = gson.fromJson(userJson,UserInfo.class);
        return user;
    }

    public List<UserInfo> users(String key){
        Gson gson = new Gson();
        List<UserInfo> users = null;
        String usersJson = redisTemplate.opsForValue().get(key);
        // 将期望解析的数据类型返回给gson
        if(!StringUtils.isEmpty(usersJson))users = gson.fromJson(usersJson,new TypeToken<List<UserInfo>>(){}.getType());
        return users;
    }

    public void delete(String key){
        redisTemplate.opsForValue().getOperations().delete(key);
    }
}

5.Redis测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTest {
    private Logger logger = LoggerFactory.getLogger(RedisTest.class);

    @Autowired
    UserRedis userRedis;

    @Before
    public void setup(){
        UserInfo user = new UserInfo();
        user.setCompanyId("123");
        user.setUserName("花无缺");
        user.setIdNo("1234113299002312421");
        user.setPkid("3212312313223123");
        userRedis.delete(this.getClass().getName()+"userByName:"+user.getUserName());
        userRedis.add(this.getClass().getName()+":userByPkid:"+user.getPkid(),10L,user);
    }

    @Test
    public void get(){
        UserInfo user = userRedis.get(this.getClass().getName()+":userByPkid:3212312313223123");
        logger.info("=================user==================name:{}",user.getUserName());
    }

}

6.IDEA的Run/Debug Configuration 配置中增加Junit配置项目,运行测试程序,点击右上角的Edit Configrations

选择所在的类以及模块

7.运行测试程序之后查看结果

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值