本文讲解Spring Boot基础下,如何整合Redis,编写数据访问。

环境依赖

修改 POM 文件,添加 spring-boot-starter-redis 依赖。

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-redis</artifactId>
  4. </dependency>

数据源

方案一 使用 Spring Boot 默认配置

在 src/main/resources/application.properties 中配置数据源信息。

  1. spring.redis.host=localhost
  2. spring.redis.port=6379
  3. spring.redis.password=
  4. spring.redis.database=1
  5. spring.redis.pool.max-active=8
  6. spring.redis.pool.max-wait=-1
  7. spring.redis.pool.max-idle=500
  8. spring.redis.pool.min-idle=0
  9. spring.redis.timeout=0

方案二 手动创建

在 src/main/resources/config/redis.properties 中配置数据源信息。

  1. # redis
  2. redis.host=localhost
  3. redis.port=6379
  4. redis.password=
  5. redis.database=1

通过 Java Config 创建redisTemplate。

  1. @Configuration
  2. @PropertySource("classpath:config/redis.properties")
  3. public class RedisConfig {
  4. @Autowired
  5. private Environment env;
  6. @Bean
  7. public RedisConnectionFactory redisConnectionFactory() {
  8. JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
  9. JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
  10. jedisConnectionFactory.setHostName(env.getProperty("redis.host").trim());
  11. jedisConnectionFactory.setPort(Integer.parseInt(env.getProperty("redis.port").trim()));
  12. jedisConnectionFactory.setPassword(env.getProperty("redis.password").trim());
  13. jedisConnectionFactory.setDatabase(Integer.parseInt(env.getProperty("redis.database").trim()));
  14. jedisConnectionFactory.setUsePool(true);
  15. jedisConnectionFactory.setPoolConfig(jedisPoolConfig);
  16. return jedisConnectionFactory;
  17. }
  18. @Bean
  19. public RedisTemplate<String, String> redisTemplate() {
  20. RedisTemplate<String, String> redisTemplate = new StringRedisTemplate();
  21. redisTemplate.setConnectionFactory(redisConnectionFactory());
  22. redisTemplate.afterPropertiesSet();
  23. return redisTemplate;
  24. }
  25. }

使用 redisTemplate 操作

工具类

  1. @Repository
  2. public class RedisBaseDao {
  3. @Resource(name="redisTemplate")
  4. protected ValueOperations<String, String> valueOperations;
  5. public void addValue(String key, String value){
  6. valueOperations.set(key, value);
  7. }
  8. public String getValue(String key){
  9. return valueOperations.get(key);
  10. }
  11. }

测试类

  1. @Repository
  2. public class ValueRedisDao {
  3. @Autowired
  4. public RedisBaseDao redisBaseDao;
  5. private String getKey(){
  6. return "param";
  7. }
  8. public void save(String param){
  9. this.redisBaseDao.addValue(this.getKey(), param);
  10. }
  11. public String getParam(){
  12. return this.redisBaseDao.getValue(this.getKey());
  13. }
  14. }

单元测试用例

编写单元测试用例,测试Redis是否正常工作。

  1. @RunWith(SpringJUnit4ClassRunner.class)
  2. @SpringApplicationConfiguration(WebMain.class)
  3. public class RedisTest {
  4. @Autowired
  5. private ValueRedisDao valueRedisDao;
  6. @Test
  7. public void test() throws Exception {
  8. this.valueRedisDao.save("LiangGzone");
  9. System.out.println(this.valueRedisDao.getParam());
  10. }
  11. }

总结

上面这个简单的案例,让我们看到了 Spring Boot 整合 Redis 的整个流程。实际上,与 Spring 4 中 通过 Spring Data Redis 整合 Redis 并无二意, Spring Boot 默认集成了一些配置信息,但是个人更加偏向于方案二的手动创建方式,为什么呢,因为更方便扩展。

源代码

相关示例完整代码: springboot-action

(完)

如果觉得我的文章对你有帮助,请随意打赏。

Spring Boot 揭秘与实战(二) 数据存储篇 - Redis的更多相关文章

  1. Spring Boot 揭秘与实战(二) 数据存储篇 - 声明式事务管理

    文章目录 1. 声明式事务 2. Spring Boot默认集成事务 3. 实战演练4. 源代码 3.1. 实体对象 3.2. DAO 相关 3.3. Service 相关 3.4. 测试,测试 本文 ...

  2. Spring Boot 揭秘与实战(二) 数据存储篇 - ElasticSearch

    文章目录 1. 版本须知 2. 环境依赖 3. 数据源 3.1. 方案一 使用 Spring Boot 默认配置 3.2. 方案二 手动创建 4. 业务操作5. 总结 4.1. 实体对象 4.2. D ...

  3. Spring Boot 揭秘与实战(二) 数据存储篇 - MongoDB

    文章目录 1. 环境依赖 2. 数据源 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 3. 使用mongoTemplate操作4. 总结 3.1. 实体对象 3 ...

  4. Spring Boot 揭秘与实战(二) 数据存储篇 - JPA整合

    文章目录 1. 环境依赖 2. 数据源 3. 脚本初始化 4. JPA 整合方案一 通过继承 JpaRepository 接口 4.1. 实体对象 4.2. DAO相关 4.3. Service相关 ...

  5. Spring Boot 揭秘与实战(二) 数据存储篇 - MyBatis整合

    文章目录 1. 环境依赖 2. 数据源3. 脚本初始化 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 4. MyBatis整合5. 总结 4.1. 方案一 通过 ...

  6. Spring Boot 揭秘与实战(二) 数据存储篇 - 数据访问与多数据源配置

    文章目录 1. 环境依赖 2. 数据源 3. 单元测试 4. 源代码 在某些场景下,我们可能会在一个应用中需要依赖和访问多个数据源,例如针对于 MySQL 的分库场景.因此,我们需要配置多个数据源. ...

  7. Spring Boot 揭秘与实战(二) 数据存储篇 - MySQL

    文章目录 1. 环境依赖 2. 数据源3. 脚本初始化 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 4. 使用JdbcTemplate操作5. 总结 4.1. ...

  8. Spring Boot 揭秘与实战(二) 数据缓存篇 - 快速入门

    文章目录 1. 声明式缓存 2. Spring Boot默认集成CacheManager 3. 默认的 ConcurrenMapCacheManager 4. 实战演练5. 扩展阅读 4.1. Mav ...

  9. Spring Boot 揭秘与实战(二) 数据缓存篇 - Redis Cache

    文章目录 1. Redis Cache 集成 2. 源代码 本文,讲解 Spring Boot 如何集成 Redis Cache,实现缓存. 在阅读「Spring Boot 揭秘与实战(二) 数据缓存 ...

随机推荐

  1. H5 DeviceMotionEvent 事件制作“摇一摇效果”

    摇一摇”的效果制作主要依赖于H5的deviceMotionEvent事件 先讲怎么使用,具体的原理在后边补充 第一步:捕捉重力加速度 var acceleration = eventData.acce ...

  2. Cassandra的commitLog、memtable、 SStable

    和关系数据库一样,Cassandra在写数据之前,也需要先记录日志,称之为commitlog,然后数据才会写入到Column Family对应的Memtable中,并且Memtable中的内容是按照k ...

  3. sublime ctags跳转函数使用

    sublime 点击某函数 按F12可以查到相关函数文件 正题: 1.下载ctags客户端文件 http://prdownloads.sourceforge.net/ctags/ctags58.zip ...

  4. openssh允许root用户登录

    openssh默认是不允许root用户登录的,未改配置直接以正确的root账号密码登录会提示用户名密码错误之类. 好消息是openssh配置十分清晰,基本所有的服务端配置都在/etc/ssh/sshd ...

  5. springmvc静态资源处理

    1.配置springmvc拦截规则,注意不能拦截 /*,这样的话,会对所有请求默认拦截,而应该拦截 /, 这样servlet会先走默认的拦截规则,默认拦截规则找不到后,才会走 / 这个规则,这样静态资 ...

  6. JSP调试技巧

    我先谈谈: 我的经验就是多装几个服务器,这个查不出错误,用另一个,这个方法很好用. ---------------------------------------------------------- ...

  7. Linux 第一周作业

    [](http://images2017.cnblogs.com/blog/1249774/201710/1249774-20171001234038872-10d31233192.pngd

  8. .clearfix:after(清除浮动)中各个属性及值详细解说

    清除浮动.clearfix:after一词,从事web前端的朋友们对此不会陌生吧,下面为大家介绍的是.clearfix:after中用到的所有属性及值的含义,对此感兴趣的朋友可以参考下哈想,希望对大家 ...

  9. 在学习DRF之前

    学习DRF之前~~~   在学习DRF之前~我们要先复习一些知识点~~ FBV和CBV 学习Django的时候~我们已经学习过了CBV以及FBV~~我们来复习一下~~ 什么是FBV和CBV呢~~ FB ...

  10. (C/C++学习笔记) 十九. 模板

    十九. 模板 ● 模板的基本概念 模板(template) 函数模板:可以用来创建一个通用功能的函数,以支持多种不同形参,进一步简化重载函数的函数体设计. 语法: template <<模 ...