Spring系列第41篇:@EnableCaching集成redis缓存,原理+实战讲解

import java.util.Arrays;

import java.util.List;

@Component

public class BookService {

@Cacheable(cacheNames = “cache1”, key = “#root.targetClass.name+‘-’+#root.method.name”)

public List list() {

System.out.println(“—模拟从db中获取数据—”);

return Arrays.asList(“java高并发”, “springboot”, “springcloud”);

}

}

测试用例

@Test

public void test7() {

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MainConfig2.class);

BookService bookService = context.getBean(BookService.class);

System.out.println(bookService.list());

System.out.println(bookService.list());

{

System.out.println(“下面打印出cache1缓存中的key列表”);

RedissonSpringCacheManager cacheManager = context.getBean(RedissonSpringCacheManager.class);

RedissonCache cache1 = (RedissonCache) cacheManager.getCache(“cache1”);

cache1.getNativeCache().keySet().stream().forEach(System.out::println);

}

}

运行输出

—模拟从db中获取数据—

[java高并发, springboot, springcloud]

[java高并发, springboot, springcloud]

下面打印出cache1缓存中的key列表

com.javacode2018.cache.demo2.BookService-list

此时数据已经进入redis了,我们用redis客户端工具RedisDesktopManager来看一下。

RedisDesktopManager下载地址

链接:https://pan.baidu.com/s/1WCd-tk8dDDJnFIKciVIQsA

提取码:x728

解压之后,点击下面的直接运行

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码是用于配置 Redis缓存,使用了 Spring 提供的缓存框架。具体解释如下: - `@Configuration`:声明这个类是一个配置类,相当于传统的 XML 配置文件。 - `@EnableCaching`:启用缓存支持。 - `RedisConfig extends CachingConfigurerSupport`:继承了 `CachingConfigurerSupport` 类,这个类提供了一些缓存配置的默认实现,可以让我们重写需要的方法来实现自定义配置。 - `@Bean`:声明这个方法返回一个 Spring 管理的 Bean 对象。 - `RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory)`:定义了一个名为 `redisTemplate` 的 Bean,这个 Bean 的类型是 `RedisTemplate<String, Object>`,返回的是 RedisTemplate 对象。 - `RedisConnectionFactory factory`:声明了一个名为 `factory` 的参数,这个参数是 `RedisConnectionFactory` 类型,表示这个 Bean 需要一个 RedisConnectionFactory 对象作为参数。 - `RedisTemplate<String, Object> template = new RedisTemplate<>();`:创建一个 RedisTemplate 对象。 - `template.setConnectionFactory(factory)`:设置 RedisTemplate 对象的连接工厂,即上面传入的 RedisConnectionFactory 对象。 - `template.setValueSerializer(new GenericToStringSerializer<>(Object.class))`:设置 RedisTemplate 对象的值序列化器,这里使用了 `GenericToStringSerializer`,将任何类型的值转换为字符串后存储到 Redis 中。 - `return template`:返回 RedisTemplate 对象,这个对象将被 Spring 管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值