Spring Boot 揭秘与实战(二) 数据存储篇 - Redis
文章目录
本文讲解Spring Boot基础下,如何整合Redis,编写数据访问。
环境依赖
修改 POM 文件,添加 spring-boot-starter-redis 依赖。
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-redis</artifactId>
- </dependency>
数据源
方案一 使用 Spring Boot 默认配置
在 src/main/resources/application.properties 中配置数据源信息。
- spring.redis.host=localhost
- spring.redis.port=6379
- spring.redis.password=
- spring.redis.database=1
- spring.redis.pool.max-active=8
- spring.redis.pool.max-wait=-1
- spring.redis.pool.max-idle=500
- spring.redis.pool.min-idle=0
- spring.redis.timeout=0
方案二 手动创建
在 src/main/resources/config/redis.properties 中配置数据源信息。
- # redis
- redis.host=localhost
- redis.port=6379
- redis.password=
- redis.database=1
通过 Java Config 创建redisTemplate。
- @Configuration
- @PropertySource("classpath:config/redis.properties")
- public class RedisConfig {
- @Autowired
- private Environment env;
- @Bean
- public RedisConnectionFactory redisConnectionFactory() {
- JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
- JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
- jedisConnectionFactory.setHostName(env.getProperty("redis.host").trim());
- jedisConnectionFactory.setPort(Integer.parseInt(env.getProperty("redis.port").trim()));
- jedisConnectionFactory.setPassword(env.getProperty("redis.password").trim());
- jedisConnectionFactory.setDatabase(Integer.parseInt(env.getProperty("redis.database").trim()));
- jedisConnectionFactory.setUsePool(true);
- jedisConnectionFactory.setPoolConfig(jedisPoolConfig);
- return jedisConnectionFactory;
- }
- @Bean
- public RedisTemplate<String, String> redisTemplate() {
- RedisTemplate<String, String> redisTemplate = new StringRedisTemplate();
- redisTemplate.setConnectionFactory(redisConnectionFactory());
- redisTemplate.afterPropertiesSet();
- return redisTemplate;
- }
- }
使用 redisTemplate 操作
工具类
- @Repository
- public class RedisBaseDao {
- @Resource(name="redisTemplate")
- protected ValueOperations<String, String> valueOperations;
- public void addValue(String key, String value){
- valueOperations.set(key, value);
- }
- public String getValue(String key){
- return valueOperations.get(key);
- }
- }
测试类
- @Repository
- public class ValueRedisDao {
- @Autowired
- public RedisBaseDao redisBaseDao;
- private String getKey(){
- return "param";
- }
- public void save(String param){
- this.redisBaseDao.addValue(this.getKey(), param);
- }
- public String getParam(){
- return this.redisBaseDao.getValue(this.getKey());
- }
- }
单元测试用例
编写单元测试用例,测试Redis是否正常工作。
- @RunWith(SpringJUnit4ClassRunner.class)
- @SpringApplicationConfiguration(WebMain.class)
- public class RedisTest {
- @Autowired
- private ValueRedisDao valueRedisDao;
- @Test
- public void test() throws Exception {
- this.valueRedisDao.save("LiangGzone");
- System.out.println(this.valueRedisDao.getParam());
- }
- }
总结
上面这个简单的案例,让我们看到了 Spring Boot 整合 Redis 的整个流程。实际上,与 Spring 4 中 通过 Spring Data Redis 整合 Redis 并无二意, Spring Boot 默认集成了一些配置信息,但是个人更加偏向于方案二的手动创建方式,为什么呢,因为更方便扩展。
源代码
相关示例完整代码: springboot-action
(完)
如果觉得我的文章对你有帮助,请随意打赏。

- 版权声明:本文由 梁桂钊 发表于 梁桂钊的博客
- 转载声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证),非商业转载请注明作者及出处,商业转载请联系作者本人。
- 文章标题:Spring Boot 揭秘与实战(二) 数据存储篇 - Redis
- 文章链接:http://blog.720ui.com/2016/springboot_02_data_redis/
Spring Boot 揭秘与实战(二) 数据存储篇 - Redis的更多相关文章
- Spring Boot 揭秘与实战(二) 数据存储篇 - 声明式事务管理
文章目录 1. 声明式事务 2. Spring Boot默认集成事务 3. 实战演练4. 源代码 3.1. 实体对象 3.2. DAO 相关 3.3. Service 相关 3.4. 测试,测试 本文 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - ElasticSearch
文章目录 1. 版本须知 2. 环境依赖 3. 数据源 3.1. 方案一 使用 Spring Boot 默认配置 3.2. 方案二 手动创建 4. 业务操作5. 总结 4.1. 实体对象 4.2. D ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - MongoDB
文章目录 1. 环境依赖 2. 数据源 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 3. 使用mongoTemplate操作4. 总结 3.1. 实体对象 3 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - JPA整合
文章目录 1. 环境依赖 2. 数据源 3. 脚本初始化 4. JPA 整合方案一 通过继承 JpaRepository 接口 4.1. 实体对象 4.2. DAO相关 4.3. Service相关 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - MyBatis整合
文章目录 1. 环境依赖 2. 数据源3. 脚本初始化 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 4. MyBatis整合5. 总结 4.1. 方案一 通过 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - 数据访问与多数据源配置
文章目录 1. 环境依赖 2. 数据源 3. 单元测试 4. 源代码 在某些场景下,我们可能会在一个应用中需要依赖和访问多个数据源,例如针对于 MySQL 的分库场景.因此,我们需要配置多个数据源. ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - MySQL
文章目录 1. 环境依赖 2. 数据源3. 脚本初始化 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 4. 使用JdbcTemplate操作5. 总结 4.1. ...
- Spring Boot 揭秘与实战(二) 数据缓存篇 - 快速入门
文章目录 1. 声明式缓存 2. Spring Boot默认集成CacheManager 3. 默认的 ConcurrenMapCacheManager 4. 实战演练5. 扩展阅读 4.1. Mav ...
- Spring Boot 揭秘与实战(二) 数据缓存篇 - Redis Cache
文章目录 1. Redis Cache 集成 2. 源代码 本文,讲解 Spring Boot 如何集成 Redis Cache,实现缓存. 在阅读「Spring Boot 揭秘与实战(二) 数据缓存 ...
随机推荐
- Create JSON by Jackson API(转)
原文地址: Create JSON by Jackson API Jackson API is a multi-purpose Java library for processing JSON. ...
- iOS 面试总结
APP崩溃 启动秒退 在新 iOS 上正常的应用,到了老版本 iOS 上秒退最常见原因是系统动态链接库或Framework无法找到.这种情况通常是由于 App 引用了一个新版操作系统里的动态库(或者某 ...
- echo * 打印当前目录列表
所以在脚本中 类似 echo $a* 如果$a为空 则会打印 目录列表.
- js如何返回两个数的商的整数和余数部分?
js中,如何返回两个数的商的整数和余数部分? 如: num1:100 ,num2:12 var num = parseFloat(100/12); //值: 8.333333333333334 那么如 ...
- Java版本知识
1zip是压缩包,而MSI文件是Windows Installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据,只要系统中包含win ...
- PAT-GPLT训练集 L1-043 阅览室
PAT-GPLT训练集 L1-043 阅览室 注意:连续的S和E才算一次借还 代码: #include<iostream> #include<cstdio> using nam ...
- 逆袭之旅DAY30.XIA.集合
2018年7月26日 面试题:List和set的区别 ArrayList 遍历效率较高,但添加和删除较慢 遍历集合最高效的方法:迭代器 集合的遍历: 迭代器:Iterator 创建 为什么使用泛型: ...
- configparse 模块
config parser 用于解析配置文件的模拟 何为配置文件 包含配置程序信息的文件就是称为配置文件 什么样的数据应作为配置文件 需要该 但是不经常改的信息 例如数据文件的路径 db_pa ...
- 每天CSS学习之border-spacing
border-spacing是CSS2的一个属性.其作用是规定表格的相邻单元格边框之间的距离.如果表格的border-collapse属性值为collapse时,border-spacing设置无效. ...
- vue-2-计算属性和观察者
<div id="example"> <p>Original message: "{{ message }}"</p> &l ...