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 揭秘与实战(二) 数据缓存 ...
随机推荐
- ABAP游标
DATA: BEGIN OF count_line, carrid TYPE spfli-carrid, count TYPE i, END OF count_line, spfli_tab TYPE ...
- [luogu P3195] [HNOI2008]玩具装箱TOY
[luogu P3195] [HNOI2008]玩具装箱TOY 题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆, ...
- NOI1995石子合并&多种石子合并
题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...
- NOIP2016玩具谜题
题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时singersi ...
- mysql sql_mode=only_full_group_by问题?
视图查询的时候本地数据库报错: 解决办法: 1.查看sql_mode select @@global.sql_mode STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_Z ...
- Android 音视频深入 一 AudioRecord录音生成pcm转换为wav(附源码下载)
本篇项目地址,名字是AudioRecord录音(能暂停,将pch转换为wav),求starhttps://github.com/979451341/Audio-and-video-learning-m ...
- hdu1693
题解: 还是插头dp 代码: #include<cstdio> #include<cstring> #include<algorithm> #include< ...
- bzoj1261
题解: 看到了树 很明显就是树形dp吗 然后随便yy一下方程就好了 代码: #include<bits/stdc++.h> using namespace std; int n,j; ], ...
- ROS tab键补全操作出现错误
ros tab键补全操作出现错误如下: $ roslaunch sp[rospack] Warning: error while crawling /home/hemudu: boost::files ...
- ubuntu gnome桌面隐藏顶栏
注意:ubuntu 14.04.5默认的为unity桌面,有多点触发,没有自带Tweak Tool工具.需安装gnome 桌面,可参见我的另一随笔. 环境: ubuntu 14.04.5 gnome ...