前面我们讲了Spring Boot和Mongodb数据库整合,今天说一下和另一个nosql的整合:redis

redis安装就不说了,例子用的是win10版的redis(去git上下载,然后解压,然后启动即可redis-cli.exe redis.windows.conf)

看到这个就代表ok了,然后我们来看看代码端

pom.xml新增

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

代码结构如下

其中redis.yml是连接redis的配置文件,RedisConfig.java是java配置类,RedisC.java是操作redis的java类

随着Spring Boot2.x的到来,支持的组件越来越丰富,也越来越成熟,其中对Redis的支持不仅仅是丰富了它的API,更是替换掉底层Jedis的依赖,取而代之换成了Lettuce(生菜)
Lettuce和Jedis的都是连接Redis Server的客户端程序。Jedis在实现上是直连redis server,多线程环境下非线程安全,除非使用连接池,为每个Jedis实例增加物理连接。Lettuce基于Netty的连接实例(StatefulRedisConnection),可以在多个线程间并发访问,且线程安全,满足多线程环境下的并发访问,同时它是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例。

代码如下

redis.yml

#redis
redis:#redis机器iphostname: 127.0.0.1#redis端口port: 6379#redis密码password:#redis超时时间(毫秒),如果不设置,取默认值2000timeout: 10000
#最大空闲数maxIdle: 300
#连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal
#maxActive=600
#控制一个pool可分配多少个jedis实例,用来替换上面的redis.maxActive,如果是jedis 2.4以后用该属性maxTotal: 1000
#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。maxWaitMillis: 1000
#连接的最小空闲时间 默认1800000毫秒(30分钟)minEvictableIdleTimeMillis: 300000
#每次释放连接的最大数目,默认3numTestsPerEvictionRun: 1024
#逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1timeBetweenEvictionRunsMillis: 30000
#是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个testOnBorrow: true
#在空闲时检查有效性, 默认falsetestWhileIdle: true#redis集群配置
#spring.cluster.nodes=192.168.1.1:7001,192.168.1.1:7002,192.168.1.1:7003,192.168.1.1:7004,192.168.1.1:7005,192.168.1.1:7006
#spring.cluster.max-redirects=3#哨兵模式
#sentinel.host1=192.168.1.1
#sentinel.port1=26379#sentinel.host2=192.168.1.2
#sentinel.port2=26379

RedisConfig.java

package com.example.smybatis.configurer;import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;import java.io.Serializable;@Configuration
@AutoConfigureAfter(RedisAutoConfiguration.class)
public class RedisConfig {@Beanpublic RedisTemplate<String, Serializable> redisCacheTemplate(LettuceConnectionFactory redisConnectionFactory) {RedisTemplate<String, Serializable> template = new RedisTemplate<>();template.setKeySerializer(new StringRedisSerializer());template.setValueSerializer(new GenericJackson2JsonRedisSerializer());template.setConnectionFactory(redisConnectionFactory);return template;}
}

RedisC.java

package com.example.smybatis.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RedisC {@Autowiredprivate StringRedisTemplate stringRedisTemplate;//添加@GetMapping(value="/redisAdd")public void saveRedis(){stringRedisTemplate.opsForValue().set("a","test");}//获取@GetMapping(value="/redisGet")public String getRedis(){return stringRedisTemplate.opsForValue().get("a");}
}

我们通过cmd重新打开一个客户端重新连接redis,执行操作,我们启动服务,浏览器输入http://localhost:1111/redisGet,如下图,我们看到原本redis服务器key是空的,执行操作之后,多了一个a

浏览器输入http://localhost:1111/redisGet,就能看到我们刚才插入的key为a对应的值了

ok,操作完成

轻轻松松学习SpringBoot2:第二十六篇: Spring Boot和Redis整合(完整版)相关推荐

  1. 生日祝福小程序_广告配音剪映零基础入门教程第二十六篇:如何给朋友制作生日祝福视频...

    经常听到小伙伴问到生日祝福视频怎么做,当然我想既然要为他人做生日祝福视频,那么这个人必定是自己身边比较重要的人,而生日又是每个人都是非常重要的,在这种充满意义的时刻,我们想给自己极其重要的人送上一份祝 ...

  2. 《深入理解 Spring Cloud 与微服务构建》第十六章 Spring Boot Security 详解

    <深入理解 Spring Cloud 与微服务构建>第十六章 Spring Boot Security 详解 文章目录 <深入理解 Spring Cloud 与微服务构建>第十 ...

  3. spring boot shiro redis整合基于角色和权限的安全管理-Java编程

    一.概述 本博客主要讲解spring boot整合Apache的shiro框架,实现基于角色的安全访问控制或者基于权限的访问安全控制,其中还使用到分布式缓存redis进行用户认证信息的缓存,减少数据库 ...

  4. SpringBoot2.x系列教程(六十六)Spring Boot快速集成RocketMQ实战教程

    前言 RocketMQ是目前主流的消息中间件之一,并且自身就支持分布式功能.最初由阿里巴巴团队开发,并且经历过双十一等海量消息场景的考验,后捐赠给Apache开源基金会,这也是为什么我们经常听说Roc ...

  5. SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台

    转载请标明出处: 原文首发于https://www.fangzhipeng.com/springboot/2017/07/11/sprinboot25-elk/ 本文出自方志朋的博客 这篇文章主要介绍 ...

  6. Spring Boot教程(十六):Spring Boot集成shiro

    Apache Shiro™是一个功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理.借助Shiro易于理解的API,您可以快速轻松地保护任何应用程序 - 从最小的移动应用程序到 ...

  7. 第二十六篇 -- 学习第四十天打卡20190803

    学习书籍<剑桥商务英语中级词汇精选>乱序版 Day06 Day35coordinate [kəʊ'ɔːdɪneɪt] v.调整,协调 [kəʊ'ɔːdɪnət] n.坐标:配套服装例:De ...

  8. 轻轻松松学习SpringBoot2:第十一篇: Spring Boot项目启动的几种方式

    方式一:右击启动或者点击intellij右上角的启动按钮 我们访问下浏览器看一下效果 方式二:利用maven启动 我们先进入到项目文件下,然后执行命令   mvn spring-boot:run 然后 ...

  9. 第二十六篇 面向对象初识

    一. 三大编程范式 前面学完了Python的基本语法,能写Python代码, 而且可以处理工作中的一些问题,今天开始就要进入面向对象的学习了.首先,了解下三大编程范式,编程范式就是编程方法论,表明的是 ...

最新文章

  1. GitHub也会断供:美国制裁地区帐号都受限,毫无预警,个人页面直接404
  2. 图片裁剪和异步上传插件--一步到位(记录)
  3. 前端学习(3255):react中动态初始化结果
  4. SAP 导出 HTML,【我sap这导出数据表格export.mhtml怎么转换为 excel 工作表.xlsx】excel生成html表格数据...
  5. gradle 不支持多级子模块_解决gradle多模块依赖在Idea中能运行,gradle build失败的问题。...
  6. 计算机数学基础知识点归纳,《计算机数学基础》(一)――离散数学期末复习参考...
  7. 记一次小程序自定义导航栏及加载动画的解决方案
  8. paip.提升用户体验---c++ qt 取消gcc编译的警告信息.txt
  9. 基于Java的企业新闻管理系统的设计与实现
  10. 【科普】Scrum——从橄榄球争球到敏捷开发
  11. PHP地图规划骑行路径,高德路径规划,自定义骑行路线(适用3D地图)
  12. MT6765/MT6762/MT6761芯片平台支持EVS-SWB?
  13. android 指纹框架,Android标准化指纹识别框架(只基于api23官方标准)
  14. SQL Server 数据库之数学函数
  15. 【虚幻】自动门蓝图笔记
  16. Elsevier系旗下期刊论文投稿流程
  17. 软件定义的网络(下)
  18. 计算机多系统启动光盘制作,多系统U盘启动盘制作方法图文介绍
  19. 手把手教你如何抵制法国货
  20. c语言列指针的形式,C语言:行指针和列指针

热门文章

  1. Docker 安装 Mysql , Redis,ElasticSearch,Kibana,RabbitMQ,Zipkin,Nacos,Minio Docker服务器环境搭建
  2. sql mysql 手注_mysql注入漏洞手注
  3. 非线性流形学习技术_非技术人员可以学习的100件事
  4. 股票交易系统接口一分钟5000均线如何操作?
  5. 推荐10大协作工具,测试团队必备
  6. win10网络 计算机终止,又一个win10即将终止?各大版本终止日期大全,你准备好了吗...
  7. 网站集成第三方登录-微信登录
  8. canvas等比缩放图片
  9. 微信公众号自定义二维码关注后自动为粉丝分组
  10. 确定了!堡垒之夜手游国服版7月24日开测,教你用模拟器畅玩堡垒之夜电脑版