什么是redis

是一个非关系型数据库内存数据库,以key-value方式进行存储,Redis以单线程方式存储,既然是单线程(保证线程安全)

Redis一个应用场景

令牌生成(临时有效)

短信验证码(临时有效)

热点数据(使用redis减轻数据库的查询压力)

使用Redis实现消息中间件(不推荐使用) 发布订阅

分布式锁

网站计数器(redis是单线程,在高并发情况下,保证全局count唯一性)

Redis基本数据类型

String类型

Hash类型

List

Set

ZSet

springboot集成redis

org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-data-redis

配置文件配置

spring.redis.database=1 -- redis数据库序号spring.redis.host=192.168.0.105spring.redis.port=6379spring.redis.password=123spring.redis.jedis.pool.max-active=8spring.redis.jedis.pool.max-wait=-1spring.redis.jedis.pool.max-idle=8spring.redis.jedis.pool.min-idle=0spring.redis.timeout=10000

注:当多个项目同时连接redis时,可以使用 spring.redis.database 进行区分。防止相同的key互相覆盖

springboot集成redis配置完成了。下面可以使用redis了

简单封装一下redis方法

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframework.stereotype.Service;import java.util.Set;import java.util.concurrent.TimeUnit;/** * Created by raden on 2019/7/17. */@Servicepublic class RedisService { @Autowired private StringRedisTemplate stringRedisTemplate; public void set(String key , Object object, Long time){ if(object instanceof String) { // 存放string类型 String value = (String)object; stringRedisTemplate.opsForValue().set(key,value); } if(object instanceof Set) { Set values = (Set) object; for(String value : values){ stringRedisTemplate.opsForSet().add(key,value); } } // 设置有效期 if(time != null) { stringRedisTemplate.expire(key,time, TimeUnit.SECONDS); } } public void setString(String key , String value){ stringRedisTemplate.opsForValue().set(key,value); } public void setSet(String key , Object object){ Set values = (Set) object; for(String value : values){ stringRedisTemplate.opsForSet().add(key,value); } } public String get(String key){ return stringRedisTemplate.opsForValue().get(key); }}

controller层调用service

@RestControllerpublic class IndexController { @Autowired private RedisService redisService; @GetMapping("/set") public String setString(String key ,String object){ redisService.set(key,object,100L); return "success"; } @GetMapping("/get") public String getString(String key ,String object){ return redisService.get(key); }}

这样springboot的redis调用完成了。

redis事务配置

public void setTransaction(String key , Object object){ // 开启事务权限 stringRedisTemplate.setEnableTransactionSupport(true); try{ // 开启事务 stringRedisTemplate.multi(); String value = (String)object; stringRedisTemplate.opsForValue().set(key,value); // 提交事务 stringRedisTemplate.exec(); }catch (Exception e){ // 回滚事务 stringRedisTemplate.discard(); }}

springboot yml 配置redis_springboot快速集成redis,事务配置相关推荐

  1. SpringBoot集成Redis和配置Redis做缓存

    Redis介绍 Redis是一个开源的.高性能的.基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求,直观的存储结构使得通过程序交互十分简单. Redis数据库中所有 ...

  2. SpringBoot动态切换数据源-快速集成多数据源的启动器

    简介 dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器. 其支持 Jdk 1.7+, SpringBoot 1.4 ...

  3. SpringBoot笔记:SpringBoot2.3集成Kafka组件配置

    文章目录 说明 Springboot集成Kafka 依赖配置 配置文件yml配置 Producer生产者 Consumer消费者 测试代码 注意事项 说明 本文是接<Kafka学习:CentOS ...

  4. 玩转 SpringBoot 2.x 之 快速集成 Jedis客户端(普通版)

    前言 Java 开发 一般会选择 Jedis 客户端来进行 Redis 相关的操作,本文通过SpringBoot 项目带你快速上手 Jedis 相关的操作. Redis 安装 请参考:带你学 Redi ...

  5. Linux redis配置服务,Linux 安装 redis 并配置成 service 系统服务

    前言 写作这一篇文章纯粹的目的就是快速上手redis,人的精力有限,将你的精力花在学习知识上,而不是安装. 我就是喜欢简单的命令管理 Linux 上的程序,信奉傻瓜式操作是流行的前提.当你希望弄懂为什 ...

  6. SpringBoot笔记:SpringBoot2.3集成SpringSession+nginx+redis实现session共享

    文章目录 Spring Session介绍 Redis集成 yml配置 依赖添加 redis存值查看 登录服务器查看redis的值 查询所有"spring:session:"开头的 ...

  7. SpringBoot中使用redis事务

    本文基于SpringBoot 2.X 事务在关系型数据库的开发中经常用到,其实非关系型数据库,比如redis也有对事务的支持,本文主要探讨在SpringBoot中如何使用redis事务. 事务的相关介 ...

  8. 智能生活 App 垂直品类- IPC SDK 架构及快速集成配置(安卓版)

    除了通用设备功能的应用开发,针对部分常见的全屋智能场景设备,智能生活 App SDK 提供了单独的垂直品类 SDK.包括智能摄像机 SDK.智能门锁 SDK.扫地机机器人 SDK.智能照明控制 SDK ...

  9. spring-boot的spring-cache中的扩展redis缓存的ttl和key名

    原文地址:spring-boot的spring-cache中的扩展redis缓存的ttl和key名 前提 spring-cache大家都用过,其中使用redis-cache大家也用过,至于如何使用怎么 ...

最新文章

  1. spring web参数传递
  2. 2019秋第二周学习总结
  3. 技术部门 Leader 与团队那些事
  4. Java基础之String,StringBuilder,StringBuffer三者的区别
  5. 应用内安装部分手机出现解析错误
  6. 多线程完成连续打印1-100的数字, 要求一条线程专门打印奇数,另外一条专门用来打印偶数
  7. 代理模式(动态代理模式)
  8. Android开发(22)--seekBar采用handler消息处理操作
  9. jQuery-实例方法
  10. Eclipse没有Web插件和JavaEE插件咋整
  11. PPTP拨号后无法打开网页处理
  12. 翻译:《CSS权威指南》(第3版)-概览和目录部分
  13. Qt学习之路系列教程目录
  14. JS Grid插件使用
  15. Linux中访问tomcat方式,linux软连接_Linux中为Tomcat启用软链接的三种方式
  16. 六大设计原则----依赖倒置原则
  17. python 转Excel二维表为一维表
  18. 最大最小次序统计量密度函数的推导
  19. JSON与聚合数据不解之缘二
  20. Binder机制之Service Manager(大内总管)

热门文章

  1. 第一款自己的RPG游戏--生成心中的世界(二)
  2. RPA教学——TypeError: ‘_Folders‘ object is not callable
  3. 【系统】日文系统中将日文键盘修改为英文键盘
  4. java私活_程序员接私活,怎样防止做完不给钱?
  5. 一本通-1014:与圆相关的计算
  6. 配电网粒子群算法实例
  7. 用Node.JS和Think.JS实现的中宣部防沉迷实名认证系统
  8. Js中类似抽奖活动案例
  9. 如何查询当前本机使用的代理服务器IP地址
  10. 深入分析Java Web技术内幕读书笔记(一)浅析Web请求过程