java如何开发redis_Java开发在项目中如何引入Redis缓存

在webshop-prodect项目的pom.xml文件中引入相关依赖,如下:

org.springframework.bootspring-boot-starter-data-redisio.lettucelettuce-coreredis.clientsjedis

修改webshop-prodect项目的application.yml文件,加上redis的相关配置,如下:

0a814d24c995ebe3941b593b02f01e09.png

新建redis的配置类RedisConfig,具体内容如下:

package com.example.springboot.redis; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.RedisSerializer; import javax.annotation.PostConstruct; @Configuration public class RedisConfig { @Autowired private RedisTemplate redisTemplate; @PostConstruct public void init() { initRedisTemplate(); } /**

* 设置redis的key-value序列化器为字符串序列化器

*/ private void initRedisTemplate() { RedisSerializer stringSerializer = redisTemplate.getStringSerializer(); redisTemplate.setKeySerializer(stringSerializer); redisTemplate.setHashKeySerializer(stringSerializer); redisTemplate.setValueSerializer(stringSerializer); redisTemplate.setHashValueSerializer(stringSerializer); } }

之后就可以使用注入RedisTemplate类来操作redis中的相应数据,或者使用SpringCache的注解方式来操作redis中数据,而哪些数据是可以放入redis的,需要根据业务情况做分析,读多写少的数据放入redis可以大程度减少与数据库的磁盘交互,基于内存的数据读取可以极大的优化数据查询性能,但是如果是写多读少的数据,要考虑的点就比较多了,如何保证缓存一致性就是一个大问题,是采用双写模式还是失效模式,解决方案就还得针对到具体的数据类型了,比如如果要求数据是强一致性的,那么建议加锁排队,保证操作数据的顺序,如果要求数据是最终一致性,可以容忍短时间的数据不一致,那么给缓存数据加上过期时间即可,当然了,还有一种类型的锁叫做读写锁,可以做到读读操作时无锁,而只要有写操作发生就加锁,阻塞后续的操作,这样在写时就可以保证数据的一致性,而读时的性能又不会受影响。

本文地址:https://blog.csdn.net/weixin_38106322/article/details/108855266

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值