日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jedis操作redis(二)

發布時間:2024/4/14 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jedis操作redis(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下面是關于jedis連接池的配置和一些注意事項:

public class JedisApiTest2 {// Redis服務器IPprivate static String ADDR = "127.0.0.1";// Redis的端口號private static int PORT = 6379;// 可用連接實例的最大數目,默認值為8;// 如果賦值為-1,則表示不限制;如果pool已經分配了maxActive個jedis實例,則此時pool的狀態為exhausted(耗盡)。private static int MAX_ACTIVE = 1024;// 控制一個pool最多有多少個狀態為idle(空閑的)的jedis實例,默認值也是8。private static int MAX_IDLE = 200;// 等待可用連接的最大時間,單位毫秒,默認值為-1,表示永不超時。如果超過等待時間,則直接拋出JedisConnectionException;private static int MAX_WAIT = 10000;private static int TIMEOUT = 10000;// 在borrow一個jedis實例時,是否提前進行validate操作;如果為true,則得到的jedis實例均是可用的;private static boolean TEST_ON_BORROW = true;private JedisPool jedisPool = null;/*** 在高版本的jedis* jar包,比如2.8.2,我們在使用中發現使用JedisPoolConfig時,沒有setMaxActive和setMaxWait屬性了,這是因為高版本中官方廢棄了此方法,用以下兩個屬性替換。* maxActive ==> maxTotal * maxWait ==> maxWaitMillis*/@Beforepublic void setup() {JedisPoolConfig config = new JedisPoolConfig();config.setMaxIdle(MAX_IDLE);config.setMaxTotal(MAX_ACTIVE);// 這個是以前的maxActiveconfig.setMaxWaitMillis(MAX_WAIT);config.setTestOnBorrow(TEST_ON_BORROW);jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, null);}@SuppressWarnings("deprecation")@Testpublic void test() {Jedis jedis = jedisPool.getResource();jedis.set("testPool", "aaa");Assert.assertEquals("aaa", jedis.get("testPool"));//jedisPool.returnResource(jedis);// 此方法已經過時 百度了一下 說截止16年11月1日,jedis官方現在最高版本為2.9.0 而jedis.close()取代pool.returnResource(Jedis)方法將3.0版本開始,所以暫時只能使用后者。jedis.close(); //在查看 jedis 2.9.0 中close源碼之后 感覺可以使用close來釋放連接}/*** JedisPool的配置參數由JedisPoolConfig的對應項來賦值的。* maxActive:控制一個pool可分配多少個jedis實例,通過pool.getResource()來獲取;如果賦值為-1,則表示不限制;如果pool已經分配了maxActive個jedis實例,則此時pool的狀態為exhausted。* maxIdle:控制一個pool最多有多少個狀態為idle(空閑)的jedis實例;* whenExhaustedAction:表示當pool中的jedis實例都被allocated完時,pool要采取的操作;默認有三種。* WHEN_EXHAUSTED_FAIL --> 表示無jedis實例時,直接拋出NoSuchElementException;* WHEN_EXHAUSTED_BLOCK --> 則表示阻塞住,或者達到maxWait時拋出JedisConnectionException;* WHEN_EXHAUSTED_GROW --> 則表示新建一個jedis實例,也就說設置的maxActive無用;* maxWait:表示當borrow一個jedis實例時,最大的等待時間,如果超過等待時間,則直接拋出JedisConnectionException;* testOnBorrow:在borrow一個jedis實例時,是否提前進行Validate操作;如果為true,則得到的jedis實例均是可用的;* testOnReturn:在return給pool時,是否提前進行validate操作;* testWhileIdle:如果為true,表示有一個idle object evitor線程對idle object進行掃描,如果validate失敗,此object會被從pool中drop掉;這一項只有在timeBetweenEvictionRunsMillis大于0時才有意義;* timeBetweenEvictionRunsMillis:表示idle object evitor兩次掃描之間要sleep的毫秒數;* numTestsPerEvictionRun:表示idle object evitor每次掃描的最多的對象數;* minEvictableIdleTimeMillis:表示一個對象至少停留在idle狀態的最短時間,然后才能被idle object evitor掃描并驅逐;這一項只有在timeBetweenEvictionRunsMillis大于0時才有意義;* softMinEvictableIdleTimeMillis:在minEvictableIdleTimeMillis基礎上,加入了至少min Idle個對象已經在pool里面了。如果為-1,evicted不會根據idle time驅逐任何對象。如果minEvictableIdleTimeMillis>0,則此項設置無意義,且只有在timeBetweenEvictionRunsMillis大于0時才有意義;* lifo:borrowObject返回對象時,是采用DEFAULT_LIFO(last in first out,即類似cache的最頻繁使用隊列),如果為False,則表示FIFO隊列;* 其中JedisPoolConfig對一些參數的默認設置如下:* testWhileIdle=true * minEvictableIdleTimeMills=60000* timeBetweenEvictionRunsMillis=30000* numTestsPerEvictionRun=-1*/ }

轉載于:https://www.cnblogs.com/joeCqupt/p/6803813.html

總結

以上是生活随笔為你收集整理的jedis操作redis(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。