概述springboot通常整合redis采用的是RedisTemplate的形式除了这种形式以外还有另外一种形式去整合即采用spring支持的注解进行访问缓存.
准备工作pom.xml
```
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.7.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
<version>RELEASE</version>
</dependency>
```
application.properties
```
# REDIS (RedisProperties)
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis服务器连接端口
spring.redis.port=6379
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=0
```
Redis配置类```
package cn.chenlove.config;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport{
@Value(\"${spring.redis.host\")
private String host;
@Value(\"${spring.redis.port\")
private int port;
@Value(\"${spring.redis.timeout\")
private int timeout;
@Value(\"${spring.redis.pool.max-idle\")
private int maxIdle;
@Value(\"${spring.redis.pool.max-wait\")
private long maxWaitMillis;
@Bean
public JedisPool redisPoolFactory() {
Logger.getLogger(getClass()).info(\"JedisPool注入成功!!\");
Logger.getLogger(getClass()).info(\"redis地址:\" + host + \":\" + port);
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxIdle(maxIdle);
jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
JedisPool jedisPool = new JedisPool(jedisPoolConfig host port timeout);
return jedisPool;
```
可以看出我们这里主要配置了两个东西cacheManager方法配置了一个缓存名称它的名字叫做thisredis当我们要在方法注解里面使用到它的时候就要根据名称进行区分不同缓存.同时设置了缓
存的过期时间.redisTemplate则是比较常见的我们设置了RedisTemplate因此在代码里面我们也可以通过@Autowired注入RedisTemplate来操作redis.
使用接下来就是如何使用注解啦这一步反而是最简单的.其实只用到了两个注解@Cacheable和@CacheEvict.第一个注解代表从缓存中查询指定的key如果有从缓存中取不再执行方法.如果没有则执
行方法并且将方法的返回值和指定的key关联起来放入到缓存中.而@CacheEvict则是从缓存中清除指定的key对应的数据.使用的代码如下:
【spring|springboot使用redis(从配置到实战)】```
//有参数
@Cacheable(value=https://mparticle.uc.cn/"thisredis\" key=\"'users_'+#id\")
public User findUser(Integer id) {
User user = new User();
user.setUsername(\"hlhdidi\");
- 闪存|变频器要怎样使用才能确保省电?
- spring|性能最强5G手机,现在现货供应,好评率97%
- 荣耀|建议收藏!2021年底盘点:这三款旗舰可以让你安逸地使用两三年
- 英伟达|Linux下使用KVM虚拟机安装华为OpenEuler系统
- 主板|华为智慧屏视频通话功能怎么使用,操作难不难?
- 华为|华为数字能源安托山基地预计在明年投入使用
- spring|千万不要重蹈覆辙!外媒突然发声,“史普尼克危机”正在重新上演!
- 开发者|开发者使用外链支付仍将被苹果抽成
- 红米手机|红米K40到底好不好用?9个月的使用体验告诉你答案
- 机器人|你愿意卖你的脸吗?俄罗斯公司开价127万,买断你脸的永久使用权