最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis連接池配置及初始化實(shí)現(xiàn)

 更新時(shí)間:2021年03月29日 14:40:31   作者:CodeMeiYang  
這篇文章主要介紹了Redis連接池配置及初始化實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

加入db選擇后的redis連接池配置代碼

public class RedisPoolConfigure {

 //Redis服務(wù)器IP
 private String ADDR ;
 
 //Redis的端口號(hào)
 private int PORT ;
 
 //可用連接實(shí)例的最大數(shù)目
 private int MAX_ACTIVE ;
 
 //pool中的idle jedis實(shí)例數(shù)
 private int MAX_IDLE ;
 
 //等待可用連接的最大時(shí)間,單位毫秒
 private int MAX_WAIT ;
 //超時(shí)時(shí)間,單位毫秒
 private int TIME_OUT ;
 //設(shè)置的逐出策略類(lèi)名, 默認(rèn)DefaultEvictionPolicy(當(dāng)連接超過(guò)最大空閑時(shí)間,或連接數(shù)超過(guò)最大空閑連接數(shù))
 private String EVICTION_POLICY_CLASS_NAME ;
 
 //連接耗盡時(shí)是否阻塞, false報(bào)異常,ture阻塞直到超時(shí)
 private boolean BLOCK_WHEN_EXHAUSTED;
 
 //是否啟用pool的jmx管理功能, 默認(rèn)true
 private boolean JMX_ENABLED;
 
 //在borrow一個(gè)jedis實(shí)例時(shí),是否提前進(jìn)行validate操作;如果為true,則得到的jedis實(shí)例均是可用的;
 private boolean TEST_ON_BORROW ;
 
 //服務(wù)器密碼
 private String REDIS_PASS;
 //redis選擇數(shù)據(jù)庫(kù)DB
 private int REDIS_DB;
 
 
 private String LUASHA;
 
 private Map<String, String> configure = null;
 
 /**
  * 根據(jù)配置文件,將RedisPool連接配置初始化
  */
 public RedisPoolConfigure(){
  try {
  configure = new ConfigureReader().readProperties("redis.properties");
 } catch (IOException e) {
 e.printStackTrace();
 }
  this.ADDR = configure.get("REDIS.ADDR");
  this.LUASHA = configure.get("REDIS.LUA_HASH");
  this.EVICTION_POLICY_CLASS_NAME = configure.get("REDIS.EVICTION_POLICY_CLASS_NAME");
  this.BLOCK_WHEN_EXHAUSTED = Boolean.parseBoolean(configure.get("REDIS.BLOCK_WHEN_EXHAUSTED"));
  this.JMX_ENABLED = Boolean.parseBoolean(configure.get("REDIS.JMX_ENABLED"));
  this.TEST_ON_BORROW = Boolean.parseBoolean(configure.get("REDIS.TEST_ON_BORROW"));
  this.REDIS_PASS=configure.get("REDIS.PASS");
  
  if(typeCheck()){
  this.PORT = new Integer(configure.get("REDIS.PORT"));
  this.MAX_ACTIVE = new Integer(configure.get("REDIS.MAX_ACTIVE"));
  this.MAX_IDLE = new Integer(configure.get("REDIS.MAX_IDLE"));
  this.MAX_WAIT = new Integer(configure.get("REDIS.MAX_WAIT"));
  this.REDIS_DB=new Integer(configure.get("REDIS.DB"));
  }else{
  System.out.println("error");
  }
 }
 
 /**
  * 輔助工具,檢查map中數(shù)據(jù)的類(lèi)型
  * @return
  */
 private boolean typeCheck() {
 if (isNumeric(configure.get("REDIS.PORT")) 
 && isNumeric(configure.get("REDIS.MAX_ACTIVE"))
 && isNumeric(configure.get("REDIS.MAX_IDLE")) 
 && isNumeric(configure.get("REDIS.MAX_WAIT"))
 && isNumeric(configure.get("REDIS.DB"))) {
 return true;
 } 
 return false;
 }

 public String getADDR() {
 return ADDR;
 }

 public int getPORT() {
 return PORT;
 }


 public int getMAX_ACTIVE() {
 return MAX_ACTIVE;
 }

 public int getMAX_IDLE() {
 return MAX_IDLE;
 }

 public int getMAX_WAIT() {
 return MAX_WAIT;
 }

 public int getTIME_OUT() {
 return TIME_OUT;
 }

 public boolean isTEST_ON_BORROW() {
 return TEST_ON_BORROW;
 }

 public String getEVICTION_POLICY_CLASS_NAME() {
 return EVICTION_POLICY_CLASS_NAME;
 }

 public boolean isBLOCK_WHEN_EXHAUSTED() {
 return BLOCK_WHEN_EXHAUSTED;
 }

 public boolean isJMX_ENABLED() {
 return JMX_ENABLED;
 }
 /**
 * 判斷傳入的數(shù)據(jù)是否為純數(shù)字構(gòu)成
 * @param str
 * @return
 */
 public boolean isNumeric(String str) {
 if(str==null || "".equals(str)){
 return false;
 }
 for (int i = 0; i < str.length(); i++) {
 if (!Character.isDigit(str.charAt(i))) {
 return false;
 }
 }
 return true;
 }

 public String getLUASHA() {
 return LUASHA;
 }

 public void setLUASHA(String lUASHA) {
 LUASHA = lUASHA;
 }

 public String getREDIS_PASS() {
 return REDIS_PASS;
 }

 public void setREDIS_PASS(String rEDIS_PASS) {
 REDIS_PASS = rEDIS_PASS;
 }

 public int getREDIS_DB() {
 return REDIS_DB;
 }

 public void setREDIS_DB(int rEDIS_DB) {
 REDIS_DB = rEDIS_DB;
 }
}

redis連接池初始化、獲取Jedis實(shí)例和釋放Jedis實(shí)例

/**
 * jedis的連接池,返回未封裝的jedis對(duì)象
 * 一般只有在RedisCache類(lèi)提供的操作粒度不足使用時(shí)才使用此類(lèi)提供的原生jedis方法
 * @author Hector
 *
 */
public class RedisPool {
 
 private static JedisPool jedisPool = null;
 
 /**
  * 初始化Redis連接池
  */
 static {
  try {
   RedisPoolConfigure configure = new RedisPoolConfigure();
   JedisPoolConfig config = new JedisPoolConfig();
   config.setBlockWhenExhausted(configure.isBLOCK_WHEN_EXHAUSTED());
   config.setEvictionPolicyClassName(configure.getEVICTION_POLICY_CLASS_NAME());
   config.setJmxEnabled(configure.isJMX_ENABLED());
   config.setMaxIdle(configure.getMAX_IDLE());
   config.setMaxTotal(configure.getMAX_ACTIVE());
   config.setMaxWaitMillis(configure.getMAX_WAIT());
   config.setTestOnBorrow(configure.isTEST_ON_BORROW());
   jedisPool = new JedisPool(config, configure.getADDR(), configure.getPORT(), configure.getTIME_OUT(),configure.getREDIS_PASS(),configure.getREDIS_DB());
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
 /**
  * 獲取Jedis實(shí)例
  * @return
  */
 public synchronized static Jedis getJedis() {
  Jedis resource=null;
  try {
   if (jedisPool != null) {
    resource = jedisPool.getResource();
    return resource;
   } else {
    return null;
   }
  } catch (Exception e) {
   e.printStackTrace();
   return null;
  }
 }
 
 
 /**
  * 釋放jedis資源
  * @param jedis
  */
 public static void close(final Jedis jedis) {
  if (jedis != null) {
   jedis.close();
  }
 }
 
 public static JedisPool getJedisPool() {
 return jedisPool;
 }
}

到此這篇關(guān)于Redis連接池配置及初始化實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Redis連接池配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Redis如何實(shí)現(xiàn)投票功能

    Redis如何實(shí)現(xiàn)投票功能

    這篇文章主要介紹了Redis如何實(shí)現(xiàn)投票功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 解析Redis 數(shù)據(jù)結(jié)構(gòu)之簡(jiǎn)單動(dòng)態(tài)字符串sds

    解析Redis 數(shù)據(jù)結(jié)構(gòu)之簡(jiǎn)單動(dòng)態(tài)字符串sds

    Redis 的 string 類(lèi)型為何使用sds而不是 C 字符串,本文主要介紹 string 的數(shù)據(jù)結(jié)構(gòu)—— 簡(jiǎn)單動(dòng)態(tài)字符串(Simple Dynamic String) 簡(jiǎn)稱(chēng)sds的相關(guān)知識(shí),需要的朋友可以參考下
    2021-11-11
  • 使用Redis緩存時(shí)高效的批量刪除的幾種方案

    使用Redis緩存時(shí)高效的批量刪除的幾種方案

    這篇文章主要介紹了使用Redis緩存時(shí)高效的批量刪除的幾種方案的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 如何打造redis緩存組件

    如何打造redis緩存組件

    文章介紹了如何使用熱插拔AOP、反射、Redis自定義注解和SpringEL表達(dá)式來(lái)打造一個(gè)優(yōu)雅的Redis緩存組件,通過(guò)這種方式,可以重構(gòu)和簡(jiǎn)化緩存代碼,并提供了Redis配置和自定義注解的詳細(xì)說(shuō)明,文章還包含了AOP測(cè)試的總結(jié),并鼓勵(lì)讀者參考和支持
    2024-12-12
  • Redis讀寫(xiě)分離搭建的完整步驟

    Redis讀寫(xiě)分離搭建的完整步驟

    為滿(mǎn)足讀多寫(xiě)少的業(yè)務(wù)場(chǎng)景.最大化節(jié)約用戶(hù)成本.云數(shù)據(jù)庫(kù)Redis版推出了讀寫(xiě)分離規(guī)格,為用戶(hù)提供透明、高可用、高性能、高靈活的讀寫(xiě)分離服務(wù),這篇文章主要給大家介紹了關(guān)于Redis讀寫(xiě)分離搭建的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • SpringBoot3+Redis實(shí)現(xiàn)分布式鎖的配置方法

    SpringBoot3+Redis實(shí)現(xiàn)分布式鎖的配置方法

    這篇文章主要介紹了SpringBoot3+Redis實(shí)現(xiàn)分布式鎖,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Redis底層數(shù)據(jù)結(jié)構(gòu)SkipList的實(shí)現(xiàn)

    Redis底層數(shù)據(jù)結(jié)構(gòu)SkipList的實(shí)現(xiàn)

    本文主要介紹了Redis底層數(shù)據(jù)結(jié)構(gòu)SkipList的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Redis大key多key拆分實(shí)現(xiàn)方法解析

    Redis大key多key拆分實(shí)現(xiàn)方法解析

    這篇文章主要介紹了Redis大key多key拆分實(shí)現(xiàn)方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 壓縮列表犧牲速度來(lái)節(jié)省內(nèi)存,Redis是膨脹了嗎

    壓縮列表犧牲速度來(lái)節(jié)省內(nèi)存,Redis是膨脹了嗎

    這篇文章主要給大家解釋了Redis 當(dāng)中的 ziplist(壓縮列表)犧牲速度來(lái)節(jié)省內(nèi)存的原因,希望大家能夠喜歡
    2021-02-02
  • Redis主從復(fù)制問(wèn)題和擴(kuò)容問(wèn)題的解決思路

    Redis主從復(fù)制問(wèn)題和擴(kuò)容問(wèn)題的解決思路

    這篇文章主要介紹了Redis主從復(fù)制問(wèn)題和擴(kuò)容問(wèn)題的解決思路,其中擴(kuò)容問(wèn)題的解決思路來(lái)自Redis作者,需要的朋友可以參考下
    2014-06-06

最新評(píng)論

东辽县| 喀喇沁旗| 原阳县| 阳曲县| 辽源市| 红河县| 睢宁县| 岳池县| 冷水江市| 六枝特区| 大冶市| 大渡口区| 蓬莱市| 镇巴县| 威海市| 肇源县| 兴仁县| 伊宁市| 通州区| 凌源市| 汤阴县| 渝北区| 朔州市| 乌鲁木齐市| 青神县| 息烽县| 河间市| 伊吾县| 千阳县| 福贡县| 米易县| 美姑县| 城固县| 娄底市| 秭归县| 启东市| 乌审旗| 陇川县| 克山县| 南江县| 阳谷县|