springboot框架中使用redis缓存数据

文章主要介绍springboot框架redis在项目中当缓存如何使用

1.在application.yml文件中配置redis,和开始redis缓存

2.在启动类中添加开启缓存注解的注解@EnableCaching

3.缓存注解的使用@Cacheable、@CacheEvict、@CachePut
@Cacheable:插入注解,注解有两个参数需要使用.value:代表存入数据的缓存名称,key:redis数据库数据结构的key,key值可以根据注解方法的参数动态获取,#key是直接获取参数中名称是key的值,#p0.key是获取参数中第一个对象的名称是key的值.
@CacheEvict:删除缓存注解,参数和@cacheable用法一致.
@CachePut:更新注解,如果需要修改缓存中的数据,使用这个注解可以满足需求.
插入和更新注解都是根据方法返回值内容,完成插入和更新.
当添加@Cacheable后,用户请求会根据key和value的值先在redis中匹配,如果有就直接返回redis中的数据,如果没有执行方法,并把方法的返回值存入到redis中.

                                                                                                                以上内容纯属个人理解与总结!
在Spring Boot应用中使用Redis作为查询缓存可以显著提升对大量数据(如10万条以上)的频繁查询性能。首先,你需要配置Spring Data Redis的Cache模块,并利用`@Cacheable`注解来标记需要缓存的方法。假设你有一个User实体,包含姓名(name)、年龄(age)和城市(city)字段: ```java @Entity public class User { @Id private Long id; private String name; private int age; private String city; // getters and setters... } ``` 然后在Service或Repository类上添加缓存注解: ```java @Service public class UserService { @Autowired private UserRepository userRepository; @Cacheable(value = "users", key = "#id") public Optional<User> getUserById(Long id) { return userRepository.findById(id); } @CacheEvict(value = "users", key = "#id") public void updateUser(User user) { userRepository.save(user); } } ``` 这里`value="users"`指定了缓存名称,`key="#id"`表示缓存键为用户ID,确保唯一。 为了保证数据无重复并避免user1, user2等序列化问题,可以在存储用户对象之生成一个唯一的标识,例如: ```java private static AtomicInteger sequenceGenerator = new AtomicInteger(); String generateUniqueKey(String baseName) { return baseName + "_" + sequenceGenerator.incrementAndGet(); } ``` 在保存User到Redis时,使用这个生成的唯一标识作为键: ```java User user = ...; String uniqueKey = generateUniqueKey(user.getName()); // Save user to Redis using uniqueKey ``` 至于实际运行时间,这取决于Redis的性能、网络延迟以及数据量的大小。如果Redis配置得当并且内存足够大,查询速度会非常快,大约在毫秒级。插入数据的时间将取决于Redis写入策略(如LUA脚本或线程安全模式),以及并发处理能力。不过由于数据已经存在,大部分时间应该花在读取而非写入
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值