SpringBoot 2.0 整合Jedis
Jedis介紹
jedis是封裝了redis的java客戶端,提供了更簡單的redis操作API,同時SpringBoot也將redis做了封裝,但是用來直接操作redis步驟繁瑣。
redis配置檔案
1 . 引入redis
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2 . 配置redis連線屬性
說明:SpringBoot會根據application.properties中的配置檔案,對SpringBoot整合的redis進行自動的配置,將屬性檔案自動注入到org.springframework.boot.autoconfigure.data.redis.RedisProperties類中,
#redis配置
################################################
#redis資料庫索引(預設為0)
spring.redis.database=0
#redis伺服器IP地址
spring.redis.host=
#redis埠號
spring.redis.port=6379
#redis密碼,預設為空
spring.redis.password=
#連線redis超時時間(毫秒)
spring.redis.time-out=0ms
#jedis連線池
###############################
#最大等待時間
spring.redis.jedis.pool.max-wait=1000 ms
#最小空閒數量
spring.redis.jedis.pool.min-idle=1
#最大空閒數量
spring.redis.jedis.pool.max-idle=10
#最大連線數量
spring.redis.jedis.pool.max-active=1000
3 . 關於RedisProperties類的原始碼分析:
package org.springframework.boot.autoconfigure.data.redis;
import java.time.Duration;
import java.util.List;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* Configuration properties for Redis.(redis的屬性配置類)
*/
@ConfigurationProperties(prefix = "spring.redis")
public class RedisProperties {
/**
* Database index used by the connection factory.
*/
private int database = 0;
/**
* Connection URL. Overrides host, port, and password. User is ignored. Example:
* redis://user:[email protected]:6379
*/
private String url;
/**
* Redis server host.
*/
private String host = "localhost";
/**
* Login password of the redis server.
*/
private String password;
/**
* Redis server port.
*/
private int port = 6379;
/**
* Whether to enable SSL support.
*/
private boolean ssl;
/**
* Connection timeout.
*/
private Duration timeout;
private Sentinel sentinel;
private Cluster cluster;
private final Jedis jedis = new Jedis();
private final Lettuce lettuce = new Lettuce();
/**
*此處省略了所有的get set方法
*/
/**
* Pool properties.(連線池的配置資訊)
*/
public static class Pool {
/**
* Maximum number of "idle" connections in the pool. Use a negative value to
* indicate an unlimited number of idle connections.
*/
private int maxIdle = 8;
/**
* Target for the minimum number of idle connections to maintain in the pool. This
* setting only has an effect if it is positive.
*/
private int minIdle = 0;
/**
* Maximum number of connections that can be allocated by the pool at a given
* time. Use a negative value for no limit.
*/
private int maxActive = 8;
/**
* Maximum amount of time a connection allocation should block before throwing an
* exception when the pool is exhausted. Use a negative value to block
* indefinitely.
*/
private Duration maxWait = Duration.ofMillis(-1);
/**
*省略了關於連線池屬性資訊的get set方法
*/
}
/**
* Cluster properties.(叢集配置資訊)
*/
public static class Cluster {
/**
* Comma-separated list of "host:port" pairs to bootstrap from. This represents an
* "initial" list of cluster nodes and is required to have at least one entry.
*/
private List<String> nodes;
/**
* Maximum number of redirects to follow when executing commands across the
* cluster.
*/
private Integer maxRedirects;
/**
*省略了關於叢集配置資訊的get set方法
*/
}
/**
* Redis sentinel properties.(哨兵屬性資訊)
*/
public static class Sentinel {
/**
* Name of the Redis server.
*/
private String master;
/**
* Comma-separated list of "host:port" pairs.
*/
private List<String> nodes;
/**
*省略了關於哨兵屬性資訊的get set方法
*/
}
/**
* Jedis client properties.(redis的客戶端jedis)
*/
public static class Jedis {
/**
* Jedis pool configuration.
*/
private Pool pool;
/**
*省略了關於jedis屬性資訊的get set方法
*/
}
/**
* Lettuce client properties.
*/
public static class Lettuce {
/**
* Shutdown timeout.
*/
private Duration shutdownTimeout = Duration.ofMillis(100);
/**
* Lettuce pool configuration.
*/
private Pool pool;
}
}
Jedis配置
1 . 引入jedis客戶端依賴
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2 . 建立JedisPoolFactory類,用來配置JedisPool屬性資訊,以及建立RedisPool
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
@Configuration
public class JedisPoolFactory {
//自動注入redis配置屬性檔案
@Autowired
private RedisProperties properties;
@Bean
public JedisPool getJedisPool(){
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(properties.getJedis().getPool().getMaxIdle());
config.setMaxTotal(properties.getJedis().getPool().getMaxActive());
config.setMaxWaitMillis(properties.getJedis().getPool().getMaxWait().toMillis());
JedisPool pool = new JedisPool(config,properties.getHost(),properties.getPort(),100);
return pool;
}
}
通過SpringBoot容器來自動建立以及注入JedisPool
@Autowired
private JedisPool jedisPool;
至此,便可以使用jedisPool.getResource();方法來獲取Jedis來操作redis資料庫了
相關推薦
SpringBoot 2.0 整合Jedis
Jedis介紹 jedis是封裝了redis的java客戶端,提供了更簡單的redis操作API,同時SpringBoot也將redis做了封裝,但是用來直接操作redis步驟繁瑣。 redis配置檔案 1 . 引入redis <depend
springboot 2.0整合activiti(1)
springboot 2.0整合activiti(1) 踩坑經歷 增加Maven依賴 生成activiti資料表 踩坑經歷 截止到現在activiti7只有beta版本,嘗試採用activiti6完成工作流任務。
springboot 2.0 整合 RestTemplate 與使用教程
首先匯入springboot 的 web 包 <dependency> <groupId>org.springframework.boot</groupId> <art
springboot 2.0 整合 Activiti5.22包括流程跟蹤和線上設計
spring boot 2.0 整合 Activiti 5.22 其實Github上的 Activiti 官方倉庫已經提供了相應的starter Activiti的starter倉庫地址:https://github.com/Activiti/Activiti/tree/5.x/mo
Springboot 2.0整合JSP與JSP的熱部署
整合JSP 1、在pom.xml中加上以下依賴 <dependency> <groupId>org.springframework.boot</groupId> <
SpringBoot 2.0 整合sharding-jdbc中介軟體,實現資料分庫分表
一、水平分割 1、水平分庫 1)、概念: 以欄位為依據,按照一定策略,將一個庫中的資料拆分到多個庫中。 2)、結果 每個庫的結構都
SpringBoot 2.0整合阿里雲OSS,實現動靜分離架構
前言 相信大部分開發者對下面這張架構圖並不陌生吧,現在很多網站/應用都採用了動靜分離的架構進行部署。博主的部落格也不例外,主機採用的是阿里雲的 ECS,使用 CDN 做靜態內容分發,不過靜態檔案還是儲存在 ECS,採用的是 Nginx 做動靜分離。今天我們來學習一下如何使用阿里雲 OSS 做動靜分離。
SpringBoot(2.0.4.RELEASE)+Elasticsearch(6.2.4)+Gradle簡單整合
png etc type .com () 簡單 import true not 記錄一下SpringBoot(2.0.4.RELEASE)+Elasticsearch(6.2.4)+Gradle整合的一個小例子。 1.在Gradle內加入相關jar包的依賴: com
《SpringBoot從入門到放棄》之第(十)篇——整合Redis(SpringBoot 2.0 版本),寫於2018年10月24號程式設計師節。
在 pom.xml 配置中新增 jar 依賴: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-d
Springboot 2.0.x 整合Redis快取
文章目錄 Springboot 2.0.x 整合Redis快取 1、引入Redis快取依賴 2、配置Redis 資料庫 3、配置Redis CacheManager
SpringBoot 2.0 | SpringBoot 整合 Redis + Cache + 分散式 Session
簡介 1.Redis redis是一個key-value儲存系統。它支援儲存的value型別相對更多,包括string(字串)、list(連結串列)、set(集合) 和hash(雜湊型別)。這些資料型別都支援push/pop、add/remove及取交集並集和差集及更豐富的操作,
SpringBoot 2.0 | SpringBoot 整合前端框架 Vue
1.簡介 Vue與 Angular,React 是目前前端三大框架,Vue 是一套用於構建使用者介面的漸進式框架。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用。Vue 的核心庫只關注檢視層,不僅易於上手,還便於與第三方庫或既有專案整合。另一方面,當與現代化的工具鏈以及
springboot 2.0 教程-10-整合訊息中介軟體
閱讀原文:https://blog.bywind.cn/articles/2018/11/28/1543373589258.html 視訊教程:https://www.bilibili.com/video/av35595465 課程原始碼:https://github.com/ibywind/s
springboot 2.0 教程-07-整合redis快取框架
閱讀原文:https://blog.bywind.cn/articles/2018/11/28/1543373589258.html 視訊教程:https://www.bilibili.com/video/av35595465 課程原始碼:https://github.com/ibywind/s
springboot 2.0 教程-05-整合mybatis
閱讀原文:https://blog.bywind.cn/articles/2018/11/28/1543373589258.html 視訊教程:https://www.bilibili.com/video/av35595465 課程原始碼:https://github.com/ibywind/s
springboot 2.0 教程-02-整合web訪問
閱讀原文:https://blog.bywind.cn/articles/2018/11/28/1543371843041.html 視訊教程:https://www.bilibili.com/video/av35595465 課程原始碼:https://github.com/ibywind/s
微服務 SpringBoot 2.0(九):整合Mybatis
我是SQL小白,我選Mybatis —— Java面試必修 引言 在第五章我們已經整合了Thymeleaf頁面框架,第七章也整合了JdbcTemplate,那今天我們再結合資料庫整合Mybatis框架 在接下來的文章中,我會用一個開源的部落格原始碼來做講解
SpringBoot 2.0.5簡單整合Spring Security遇到的坑
SpringBoot整合Security的部落格案例網上已經很多了,但個人覺得對於一個初次整合Security的同學來說,一個簡單的案例還是很有必要的。為此,上傳一個本人整合的案例,僅供大家參考,也為自己記錄一下,話不多說,表演開始。 版本介紹:SpringBoot 2.0
Springboot 2.0.x 簡單整合Rabbit MQ 並實現訊息傳送和消費【Windows 環境下】
文章目錄 Springboot 2.0.x 簡單整合Rabbit MQ 並實現訊息傳送和消費【Windows 環境下】 1、rabbit mq 基礎支援,安裝 Erlang 環境 2、安裝 ra
Springboot 2.0.3.RELEASE 與 activiti 5.22.0 整合
activiti Spring boot 整合原始碼 專案採用Springboot 2.0.3.RELEASE版本以及activiti 5.22.0版本 在acitiviti官網下載完整包https://github.com/Activiti/Activiti/