本次和大家分享的是在springboot集成使用redis,这里使用的是redis的jedis客户端(这里我docker运行的redis,可以参考 docker快速搭建几个常用的第三方服务),如下添加依赖:

<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>

  然后需要redis的相关配置(这里我的redis密码是空),在application.yml设置如:

spring:
redis:
single: 192.168.146.28:
jedis:
pool:
max-idle:
max-active:
max-wait:
timeout:
password:

  这是redis的一般配置,具体调优可以设置这些参数,下面在JedisConfig类中读取这些设置:

  @Value("${spring.redis.single}")
private String strSingleNode; @Value("${spring.redis.jedis.pool.max-idle}")
private Integer maxIdle; @Value("${spring.redis.jedis.pool.max-active}")
private Integer maxActive; @Value("${spring.redis.jedis.pool.max-wait}")
private Integer maxAWait; @Value("${spring.redis.timeout}")
private Integer timeout; @Value("${spring.redis.password}")
private String password;

  有上面的配置,就需要有代码里面设置下,这里创建一个返回JedisPoolConfig的方法

     /**
* jedis配置
*
* @return
*/
public JedisPoolConfig getJedisPoolConfig() {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(maxIdle); #最大空闲数
config.setMaxWaitMillis(maxAWait); #最大等待时间
config.setMaxTotal(maxActive); #最大连接数
return config;
}

  有了配置,接下来就创建JedisPool,这里把JedisPool托管到spring中

   /**
* 获取jedispool
*
* @return
*/
@Bean
public JedisPool getJedisPool() {
JedisPoolConfig config = getJedisPoolConfig();
System.out.println("strSingleNode:" + this.strSingleNode);
String[] nodeArr = this.strSingleNode.split(":"); JedisPool jedisPool = null;
if (this.password.isEmpty()) {
jedisPool = new JedisPool(
config,
nodeArr[],
Integer.valueOf(nodeArr[]),
this.timeout);
} else {
jedisPool = new JedisPool(
config,
nodeArr[],
Integer.valueOf(nodeArr[]),
this.timeout,
this.password);
}
return jedisPool;
}

  上面简单区分了无密码的情况,到此jedis的配置和连接池就基本搭建完了,下面就是封装使用的方法,这里以set和get为例;首先创建个JedisComponent组件,代码如下:

/**
* Created by Administrator on 2018/8/18.
*/
@Component
public class JedisComponent { @Autowired
JedisPool jedisPool; public boolean set(String key, String val) {
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
return jedis.set(key, val).equalsIgnoreCase("OK");
} finally {
if (jedis != null) {
jedis.close();
}
}
} public <T> boolean set(String key, T t) {
String strJson = JacksonConvert.serilize(t);
if (strJson.isEmpty()) {
return false;
}
return this.set(key, strJson);
} public String get(String key) {
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
return jedis.get(key);
} finally {
if (jedis != null) {
jedis.close();
}
}
} public <T> T get(String key, Class<T> tClass) {
String strJson = this.get(key);
return JacksonConvert.deserilize(strJson, tClass);
}
}

  有了对jedis的调用封装,我们在Controller层的测试用例如下:

   @Autowired
JedisComponent jedis; @GetMapping("/setJedis/{val}")
public boolean setJedis(@PathVariable String val) {
return jedis.set("token", val);
} @GetMapping("/getJedis")
public String getJedis() {
return jedis.get("token");
}

  运行set和get的接口效果如:

springboot + redis(单机版)的更多相关文章

  1. Redis单机版以及集群版的安装搭建以及使用

    1,redis单机版 1.1   安装redis n  版本说明 本教程使用redis3.0版本.3.0版本主要增加了redis集群功能. 安装的前提条件: 需要安装gcc:yum install g ...

  2. 十分钟搭建redis单机版 & java接口调用

    本次单机版redis服务器搭建采用的包为redis-3.0.0.tar.gz,主要是记录下安装的心得,不喜勿喷! 一.搭建redis服务器单机版 1.上传redis-3.0.0.tar.gz到服务器上 ...

  3. Redis单机版安装

    1.工具简单介绍 1.博主使用的是Xshell工具 ps:需要设置端口和连接名称,端口一般默认为22,需要的童鞋可以自行百度 2.Redis单机版安装 第一步:安装gcc编译环境 yum instal ...

  4. linux下redis单机版搭建

    1.1.什么是redis Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库.它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下: ...

  5. 补习系列(14)-springboot redis 整合-数据读写

    目录 一.简介 二.SpringBoot Redis 读写 A. 引入 spring-data-redis B. 序列化 C. 读写样例 三.方法级缓存 四.连接池 小结 一.简介 在 补习系列(A3 ...

  6. SpringBoot+Redis整合

    SpringBoot+Redis整合 1.在pom.xml添加Redis依赖 <!--整合Redis--> <dependency> <groupId>org.sp ...

  7. springboot +redis配置

    springboot +redis配置 pom依赖 <dependency> <groupId>org.springframework.boot</groupId> ...

  8. 【springboot】【redis】springboot+redis实现发布订阅功能,实现redis的消息队列的功能

    springboot+redis实现发布订阅功能,实现redis的消息队列的功能 参考:https://www.cnblogs.com/cx987514451/p/9529611.html 思考一个问 ...

  9. spring boot 学习(十四)SpringBoot+Redis+SpringSession缓存之实战

    SpringBoot + Redis +SpringSession 缓存之实战 前言 前几天,从师兄那儿了解到EhCache是进程内的缓存框架,虽然它已经提供了集群环境下的缓存同步策略,这种同步仍然需 ...

随机推荐

  1. Python——pip安装报错:is not a supported wheel on this platform

    pip安装报错:is not a supported wheel on this platform 可能的原因1:安装的不是对应python版本的库,下载的库名中cp35代表python3.5,其它同 ...

  2. bzoj 2653 middle 二分答案 主席树判定

    判断中位数是否可行需要将当前的解作为分界,大于其的置为1,小于为-1,然后b-c必选,ab,cd可不选,这个用线段树判定就好 但不能每次跑,所以套主席树,按权值排序,构建主席树,更新时将上一个节点改为 ...

  3. BZOJ_3872_[Poi2014]Ant colony_dfs

    BZOJ_3872_[Poi2014]Ant colony_dfs Description There is an entrance to the ant hill in every chamber ...

  4. B20J_2836_魔法树_树链剖分+线段树

    B20J_2836_魔法树_树链剖分+线段树 题意: 果树共有N个节点,其中节点0是根节点,每个节点u的父亲记为fa[u].初始时,这个果树的每个节点上都没有果子(即0个果子). Add u v d ...

  5. 若干排序算法的Python实现方法及原理

    今天突然想到了一个问题:让你立即把堆排.快排等等排序算法写出来会不会,并且不能犯逻辑错误? 我说:不会,至少需要思考一下,并且可能还需要时间调试. 之前总是觉得,不就是排序算法吗?有什么大不了的?网上 ...

  6. 最详细的div边距合并的问题和解决方法

    对于前端来说写页面是最基础的东西了,但是想不到还是有人不理解边距合并的问题,昨天有网友问我为什么设置的margin不是我设置的实际效果? 好吧,废话不多说,下面来说一下关于margin合并的问题. 解 ...

  7. android使用.9图作为背景,内容不能居中的问题解决方案

    在xml中使用.9图作为背景,内容不能居中,试了好多方法最后,加一个属性就ok了. android:padding:0dip; 解析:.9图作为背景时,不可拉伸的部分就相当于该空间的padding距离 ...

  8. 3.python词云图的生成

    安装库 pip install jieba wordcloud matplotlib 准备 txt文本 字体(simhei.ttf) 词云背景图片 代码 import matplotlib.pyplo ...

  9. Python-爬取校花网视频(单线程和多线程版本)

    一.参考文章 python爬虫爬取校花网视频,单线程爬取 爬虫----爬取校花网视频,包含多线程版本 上述两篇文章都是对校花网视频的爬取,由于时间相隔很久了,校花网上的一些视频已经不存在了,因此上述文 ...

  10. 从mysql中拿到的数据构造为列表

    最近测试接口遇到一个问题,用python2.7从mysql中取到的数据是元祖类型的,元祖内部的元素也是一个元祖(并且部分元素的编码格式是unicode的): 类似这样: ((10144, u''), ...