springboot中使用redis的方法代码详解
​redis 作为一个高性能的内存数据库,如果不会用就太落伍了,之前在 node.js 中用过 redis,本篇记录如何将 redis 集成到 spring boot 中。感兴趣的朋友跟随小编一起看看吧 在Spring Boot中集成Redis作为高速缓存数据库是一个常见的实践,特别是在构建高性能的微服务架构时。Redis因其内存存储和高效的数据结构而受到欢迎。本文将详细介绍如何在Spring Boot 2.1.3版本中集成Redis,并展示两种使用Redis的方法:通过操作类和使用注解。 为了安装Redis,我们可以利用Docker容器化技术。创建一个`docker-compose.yml`文件,配置如下: ```yaml version: "2" services: redis: container_name: redis image: redis:3.2.10 ports: - "6379:6379" ``` 运行`docker-compose up -d`命令启动Redis服务。确保你的系统已经安装了Docker和Docker Compose。 接下来,我们要在Spring Boot项目中集成Redis。更新`pom.xml`文件,添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <exclusions> <exclusion> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency> ``` 这里我们排除了默认的Lettuce连接池,转而使用Jedis。Jedis是一个流行的Java Redis客户端,适合简单场景。 然后,在`application.properties`或`application.yml`中配置Redis连接信息: ```properties spring.cache.type=redis spring.redis.database=0 spring.redis.host=192.168.226.5 spring.redis.port=6379 spring.redis.password=your_password spring.redis.timeout=1000ms ``` 配置Jedis连接池: ```properties spring.redis.jedis.pool.max-active=8 spring.redis.jedis.pool.max-wait=5000ms spring.redis.jedis.pool.max-idle=8 spring.redis.jedis.pool.min-idle=0 ``` 为了启用缓存功能,创建一个名为`RedisConfig`的配置类,并实现`CachingConfigurerSupport`接口: ```java @Configuration @EnableCaching public class RedisConfig extends CachingConfigurerSupport { // ... @Bean public CacheManager cacheManager(RedisConnectionFactory connectionFactory) { RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig() // 配置缓存默认过期时间 .entryTtl(Duration.ofSeconds(3600)); return RedisCacheManager.builder(connectionFactory) .cacheDefaults(redisCacheConfiguration) .build(); } // ... } ``` 现在,你可以通过自定义操作类来与Redis交互,例如创建一个`RedisService`: ```java @Service public class RedisService { @Autowired private StringRedisTemplate stringRedisTemplate; public void set(String key, String value) { stringRedisTemplate.opsForValue().set(key, value); } public String get(String key) { return stringRedisTemplate.opsForValue().get(key); } // 其他操作... } ``` 此外,Spring Boot还提供了注解驱动的缓存支持。例如,你可以使用`@Cacheable`、`@CacheEvict`和`@CachePut`等注解来控制缓存行为: ```java @Service public class UserService { @Cacheable(value = "users", key = "#id") public User getUserById(Long id) { // 查询数据库并返回User对象 } @CacheEvict(value = "users", key = "#id") public void deleteUserById(Long id) { // 删除用户 } @CachePut(value = "users", key = "#user.id") public User updateUser(User user) { // 更新用户并返回更新后的User对象 } } ``` 通过这种方式,你可以轻松地在Spring Boot应用中利用Redis进行数据缓存,提高服务性能。请根据实际情况调整配置和代码,以适应你的项目需求。
- 粉丝: 2
- 资源: 921
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python+SQL Server的实验室管理系统python数据库管理系统
- 离线xml转json的html代码
- springboot学生综合测评系统 PPT
- 油雾分离器工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- hadoop-大数据技术中的Hadoop架构与应用解析
- CH340系列PDF数据手册
- IMG_20241225_103252.jpg
- 批量调整表格的行高Python实现源代码(不存在多行合并)
- silvaco学习资料!
- 职工工资表接近满分作业包含所有源文件
- 不同操作系统上tomcat安装与配置教程指南
- 纯js实现国密算法:sm2,sm3,sm
- 安卓源码,安卓开发,跑步打卡项目app源码,包括源码和简单文档
- selenium自动化测试工具详解:核心组件、编程语言支持及应用场景
- 大数据架构初步规划与应用
- 代码审核管理规范1.0