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 揭秘与实战(二) 数据缓存 ...
随机推荐
- 51Nod 1001 数组中和等于K的数对
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1001一开始的想法是排序后二分搜索,发现会进行非常多不必要的遍历,十分耗时 ...
- PostgreSQL常用查看命令
1. 查看当前库sehcma大小,并按schema排序 SELECT schema_name, pg_size_pretty(sum(table_size)::bigint) as "dis ...
- Markdown 绘制 UML 图 -- PlantUML + Gravizo(转)
原文地址:Markdown 绘制 UML 图 -- PlantUML + Gravizo
- Sublime Text 3 + phpfmt 插件
Sublime Text 3 + phpfmt 插件 phpfmt 插件参数 ```json{ "autocomplete": true, "enable_auto_al ...
- 使用外置的Servlet容器
嵌入式Servlet容器: 优点:简单.便捷 缺点:默认不支持JSP.优化定制比较复杂(使用定制器[ServerProperties.自定义EmbeddedServletContainerCustom ...
- 事务隔离级别引发的"血案"
事务引发的"血案"见的多了也麻木了,这回遇到个事务隔离级别的"案子",坑了我小半天的时间...也怪自己细节不牢.. 敲着代码遇到这么一个怪事情: class X ...
- zhuan 常用图像数据集:标注、检索
目录(?)[+] 1.搜狗实验室数据集: http://www.sogou.com/labs/dl/p.html 互联网图片库来自sogou图片搜索所索引的部分数据.其中收集了包括人物.动物. ...
- zabbix_server.conf、zabbix_agentd.conf配置文件详解
zabbix_server.conf配置文件详解 AlertScriptsPath 默认值:/usr/local/share/zabbix/alertscripts 说明:告警脚本目录 AllowRo ...
- python 自然语言处理(六)____N-gram标注
1.一元标注器(Unigram Tagging) 一元标注器利用一种简单的统计算法,对每个标注符分配最有可能的标记.例如:它将分配标记JJ给词frequent,因为frequent用作形容词更常见.一 ...
- 51nod1339飞行任务
首先按照收获从大到小排序. 然后01背包取或者不取即可. 至于为什么这样对的其实我也不知道.... 代码: #include<bits/stdc++.h> using namespace ...