如何在springboot项目中添加redis 缓存?
Redis简介
Redis(Remote Dictionary Server )远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存也可持久化的日志型、Key-Value数据库。
Redis的特点
- 性能极高,基于内存,读的速度是110000次/s,写的速度是81000次/s
- 丰富的数据类型,支持string、hash、list、set及zset多种数据类型
- 原子性,所有操作都是原子性的,支持事务
- 丰富的特性,支持发布订阅、通知、过期策略等
- 支持持久化,可以将内存中的数据保存在磁盘中,重启后再次加载
- 支持分布式,理论上可以无限扩展
- 单线程,没有线程并发问题
主要应用场景:
1. 作为缓存,提升查询性能
2. 做分布式锁
安装Redis
linux安装
安装c编译器
yum -y install gcc
下载redis
cd /usr/local
wget http://download.redis.io/releases/redis-3.2.5.tar.gz
解压redis
tar -xvf redis-3.2.5.tar.gz
mv redis-3.2.5 redis
编译redis
cd redis
make
配置redis
修改redis.conf
# bind 127.0.0.1 去掉绑定本机IP,让其它机器访问
protected mode no 关闭保护模式
启动redis服务器
切换到src中
./redis-server ../redis.conf
启动redis客户端
./reds-cli
从官网下载redis的windows版本
https://github.com/tporadowski/redis/releases
解压后,双击redis-server.exe,就完成了Redis启动
安装好后启动redis 可视化工具 Redis Desktop Manager 这个可视化工具可以直接搜索下载。

输入后点击左下角的测试连接,接着会显示连接成功。

然后导入依赖
org.springframework.boot spring-boot-starter-data-redis
com.alibaba fastjson 2.0.6 compile
在配置文件中配置
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.database=0
spring.redis.jedis.pool.max-active=100
spring.redis.jedis.pool.max-wait=100ms
spring.redis.jedis.pool.max-idle=100
spring.redis.jedis.pool.min-idle=10
相关注解
//启动缓存
@EnableCaching
配置类
@Configuration
public class RedisConfig {@Beanpublic RedisCacheConfiguration provideRedisCacheConfiguration(){//加载默认配置RedisCacheConfiguration conf = RedisCacheConfiguration.defaultCacheConfig();//返回Jackson序列化器return conf.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJacksonJsonRedisSerializer()));}
}
添加完配置类后报错的话记得导包。
@CacheConfig 使用在Service类上,可以配置缓存名称,如:
@CacheConfig(cacheNames = “books”)
@Cacheable 使用在查询方法上,让方法优先查询缓存
@CachePut 使用在更新和添加方法上,数据库更新和插入数据后同时保存到缓存里
@CacheEvict 使用在删除方法上,数据库删除后同时删除缓存
这是在serviceImpl层添加
//按分类查询广告时进行缓存,缓存名称是promotionAd-category,键是分类id

caheName后面的名字自己取,下面的caheable一样,后面时string类型的id属性
其它的crud操作类似,只需要改注解即可。
缓存添加完成后启动项目,执行CRUD后,相应的数据会在redis缓存中出现。

如果对你有帮助的话,还希望能够点个赞,谢谢。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
