Springboot整合redis

本文介绍了如何在SpringBoot项目中整合Redis,包括两种使用方式:注解方式和RedisTemplate方式。注解方式中,详细说明了配置依赖、启用缓存、使用@Cacheable注解的注意事项,以及pojo对象实现序列化的方法。RedisTemplate方式则涵盖了配置依赖、RedisConfig的设置,以及创建工具类RedisUtil简化操作。最后,展示了Controller中测试Redis缓存的代码。
摘要由CSDN通过智能技术生成
  1. 注解方式使用Redis缓存

  • Pom.xml文件引入依赖

<dependency>

       <groupId>org.springframework.boot</groupId>

       <artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

  • application.properties中redis的配置

## Redis 配置

## Redis数据库索引(默认为0)

spring.redis.database=0

## Redis服务器地址

spring.redis.host=127.0.0.1

## Redis服务器连接端口

spring.redis.port=6379

## Redis服务器连接密码(默认为空)

spring.redis.password=

## 连接池最大连接数(使用负值表示没有限制)

spring.redis.jedis.pool.max-active=8

# 连接池最大阻塞等待时间(使用负值表示没有限制)

spring.redis.jedis.pool.max-wait=-1ms

# 连接池中的最大空闲连接

spring.redis.jedis.pool.max-idle=8

# 连接池中的最小空闲连接

spring.redis.jedis.pool.min-idle=0

# 连接超时时间(毫秒)

spring.redis.timeout=5000ms

  • 在启动类上加注解@EnableCaching

@SpringBootApplication

@EnableCaching

public class SellApplication {

    public static void main(String[] args) {

        SpringApplication.run(SellApplication.class, args);

    }

}

  • 在需要加缓存的方法上添加注解@Cacheable

@RequestMapping("getAllUsers")

@ResponseBody

@Cacheable(cacheNames = "user", key = "’allUsers’")

public List<User> getAllUsers(){

  return userService.getAllUsers();

}

Ps:@Cacheable(cacheNames=”user”, key=”allUsers”)中的key=“allUsers”的双引号中需要加一个单引号key=”’allUsers’”

否则汇报错:Property or field 'allUsers' cannot be found on object of type 'org.springframework.cache.interceptor.CacheExpressionRootObject' - maybe not public or not valid?

  • pojo对象实现序列化

public class User implements Serializable {

    private static final long serialVersionUID = 2862072390536086881L;

    private Integer id;

    private String name;

    private String sex;

    private String phone;

    public Integer getId() {

        return id;

    }

    public void setId(Integer id) {

        this.id = id;

    }

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name == null ? null : name.trim();

    }

    public String getSex() {

        return sex;

    }

    public void setSex(String sex) {

        this.sex = sex == null ? null : sex.trim();

    }

    public String getPhone() {

        return phone;

    }

    public void setPhone(String phone) {

        this.phone = phone == null ? null : phone.trim();

    }

}

 

Ps:idea使用GenerateSerialVersionUID插件的方法(pojo类实现Serializable接口后可快速生成serialVersionUID)

如上图所示安装插件

如上图所示,进入Default Settings,在Inspections设置页面中,勾选Serializable class without 'serialVersionUID',并且还可以在Severity中设置提示级别,如Warning、Error等,默认为Warning,也建议选择Warning级别的提示。

如上图所示,创建一个类并实现Serializable接口,然后按alt+insert键,即可收到提示,然后选择SerialVersionUID:

2.RedisTemplate方式使用Redis缓存

  • Pom.xml引入依赖

Pom.xml引入的依赖和注解方式引入的依赖是一样的,如果已经引入这一步忽略。

<dependency>

       <groupId>org.springframework.boot</groupId>

       <artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

  • application.properties中redis的配置

 这一步和注解方式的一样,如果已经配置可以忽略。

## Redis 配置

## Redis数据库索引(默认为0)

spring.redis.database=0

## Redis服务器地址

spring.redis.host=127.0.0.1

## Redis服务器连接端口

spring.redis.port=6379

## Redis服务器连接密码(默认为空)

spring.redis.password=

## 连接池最大连接数(使用负值表示没有限制)

spring.redis.jedis.pool.max-active=8

# 连接池最大阻塞等待时间(使用负值表示没有限制)

spring.redis.jedis.pool.max-wait=-1ms

# 连接池中的最大空闲连接

spring.redis.jedis.pool.max-idle=8

# 连接池中的最小空闲连接

spring.redis.jedis.pool.min-idle=0

# 连接超时时间(毫秒)

spring.redis.timeout=5000ms

  • 配置RedisConfig

Spring帮助封装了RedisTemplate和StringRedisTemplate两个类链接reids,但是RedisTemplate的泛型是<Object,Object>用着很不方便,手动配置一个RedisTemplate<String, Object>

@Configuration

public class RedisConfig {

    @Bean

    @SuppressWarnings("all")

    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值