springboot + redis(单机版)
本次和大家分享的是在springboot集成使用redis,这里使用的是redis的jedis客户端,如下添加依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
然后需要redis的相关配置(这里我的redis密码是空)
spring:
redis:
single: 192.168.146.28:6378
jedis:
pool:
max-idle: 8
max-active: 8
max-wait: 3000
timeout: 3000
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[0],
Integer.valueOf(nodeArr[1]),
this.timeout);
} else {
jedisPool = new JedisPool(
config,
nodeArr[0],
Integer.valueOf(nodeArr[1]),
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的接口效果如

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
flask学习笔记(一)
思来想去,还是放弃用word记笔记的习惯吧,写了又不会回头看。 虚拟环境 每创建一个项目,就一定要给该项目创建一个虚拟环境。 虚拟环境用来隔离项目之间因为版本不同而产生的差异。 Flask服务器搭建步骤 1、从flask包里面导入Flask类 2、实例化Flask。 我们管falsk的实例化对象叫app。括号里面的__name__是flask实例化核心对象的一个标志。 实例化时传入参数“__name__”的原因是让我们实例化的这个对象与其他对象有所区分(揣测的意思,以后看了源码可能会改) (课下了解:基于类的视图——即插视图) 3、视图函数实现的功能复用性不高,get一个新名词 “基于类的视图——即插视图” ,传送门(打马,以后仔细看看): http://docs.jinkan.org/docs/flask/views.html 扩展知识:重定向 将@app.route(/hello“)改成@app.route(/hello/“)就可以兼容用户输入网址时,末尾带“/”之后无法访问网页的弊端。 浏览器申请访问url1,服务器并没有把url1的资源返回给浏览器,而是返回一个url2的loc...
-
下一篇
学习JQuery
1. 重要基础 简写加载函数,事情必须在DOM加载之后,否则无法绑定对象 $(document).ready() $(function(){}); //推荐缩写 使用包括 JQuery 库外语法类似的 JavaScript 库时,注意命名冲突 Jquery.noConflict() var $$ = JQuery; //换成 $$ 调用Jquery函数 2. 基础选择器 (选择器使用css1,css2的全部选择器语法,以及部分css3语法。) 对 id 元素使用选择器: 默认对第一个元素外的其他元素"失明",返回第一个对象。 调用属性 .length 或函数 .size() 查看对象集合的数量 获取对象集合里的元素 .get(0) 或加下标 [0] 群组选择器: 逗号列举 $("label, #text, .blue") 后代选择器 $("#nav h4 span") $("#nav").find("h4").find("span") 子代选择器(只能是直接的父子关系) $("#nav > span") $("#nav").children("span") 获取 span 的下一...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- MySQL数据库在高并发下的优化方案
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Mario游戏-低调大师作品
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16