首页 > 学院 > 开发设计 > 正文

Redis客户端之Spring整合Jedis

2019-11-15 00:13:44
字体:
来源:转载
供稿:网友
Redis客户端之SPRing整合Jedis

1.下载相关jar包,并引入工程:

jedis-2.4.2.jar

commons-pool2-2.0.jar

2.将以下xml配置引入spring

Xml代码收藏代码
  1. <beanid="shardedJedisPool"class="redis.clients.jedis.ShardedJedisPool">
  2. <constructor-argindex="0"ref="jedisPoolConfig"/>
  3. <constructor-argindex="1">
  4. <list>
  5. <beanname="slaver"class="redis.clients.jedis.JedisShardInfo">
  6. <constructor-argindex="0"value="${redis.slaver.host}"/>
  7. <constructor-argindex="1"value="${redis.slaver.port}"type="int"/>
  8. </bean>
  9. <beanname="master"class="redis.clients.jedis.JedisShardInfo">
  10. <constructor-argindex="0"value="${redis.master.host}"/>
  11. <constructor-argindex="1"value="${redis.master.port}"type="int"/>
  12. </bean>
  13. </list>
  14. </constructor-arg>
  15. </bean>
  16. <beanid="jedisPoolConfig"class="redis.clients.jedis.JedisPoolConfig">
  17. <propertyname="maxTotal"value="2048"/>
  18. <propertyname="maxIdle"value="200"/>
  19. <propertyname="numTestsPerEvictionRun"value="1024"/>
  20. <propertyname="timeBetweenEvictionRunsMillis"value="30000"/>
  21. <propertyname="minEvictableIdleTimeMillis"value="-1"/>
  22. <propertyname="softMinEvictableIdleTimeMillis"value="10000"/>
  23. <propertyname="maxWaitMillis"value="1500"/>
  24. <propertyname="testOnBorrow"value="true"/>
  25. <propertyname="testWhileIdle"value="true"/>
  26. <propertyname="testOnReturn"value="false"/>
  27. <propertyname="jmxEnabled"value="true"/>
  28. <propertyname="jmxNamePrefix"value="youyuan"/>
  29. <propertyname="blockWhenExhausted"value="false"/>
  30. </bean>

3.将shardedJedisPool注入相关的类中即可使用

java代码收藏代码
  1. @Resource
  2. privateShardedJedisPoolshardedJedisPool;
  3. /**
  4. *设置一个key的过期时间(单位:秒)
  5. *@paramkeykey值
  6. *@paramseconds多少秒后过期
  7. *@return1:设置了过期时间0:没有设置过期时间/不能设置过期时间
  8. */
  9. publiclongexpire(Stringkey,intseconds){
  10. if(key==null||key.equals("")){
  11. return0;
  12. }
  13. ShardedJedisshardedJedis=null;
  14. try{
  15. shardedJedis=shardedJedisPool.getResource();
  16. returnshardedJedis.expire(key,seconds);
  17. }catch(Exceptionex){
  18. logger.error("EXPIREerror[key="+key+"seconds="+seconds+"]"+ex.getMessage(),ex);
  19. returnBrokenResource(shardedJedis);
  20. }finally{
  21. returnResource(shardedJedis);
  22. }
  23. return0;
  24. }
  25. /**
  26. *设置一个key在某个时间点过期
  27. *@paramkeykey值
  28. *@paramunixTimestampunix时间戳,从1970-01-0100:00:00开始到现在的秒数
  29. *@return1:设置了过期时间0:没有设置过期时间/不能设置过期时间
  30. */
  31. publiclongexpireAt(Stringkey,intunixTimestamp){
  32. if(key==null||key.equals("")){
  33. return0;
  34. }
  35. ShardedJedisshardedJedis=null;
  36. try{
  37. shardedJedis=shardedJedisPool.getResource();
  38. returnshardedJedis.expireAt(key,unixTimestamp);
  39. }catch(Exceptionex){
  40. logger.error("EXPIREerror[key="+key+"unixTimestamp="+unixTimestamp+"]"+ex.getMessage(),ex);
  41. returnBrokenResource(shardedJedis);
  42. }finally{
  43. returnResource(shardedJedis);
  44. }
  45. return0;
  46. }
  47. /**
  48. *截断一个List
  49. *@paramkey列表key
  50. *@paramstart开始位置从0开始
  51. *@paramend结束位置
  52. *@return状态码
  53. */
  54. publicStringtrimList(Stringkey,longstart,longend){
  55. if(key==null||key.equals("")){
  56. return"-";
  57. }
  58. ShardedJedisshardedJedis=null;
  59. try{
  60. shardedJedis=shardedJedisPool.getResource();
  61. returnshardedJedis.ltrim(key,start,end);
  62. }catch(Exceptionex){
  63. logger.error("LTRIM出错[key="+key+"start="+start+"end="+end+"]"+ex.getMessage(),ex);
  64. returnBrokenResource(shardedJedis);
  65. }finally{
  66. returnResource(shardedJedis);
  67. }
  68. return"-";
  69. }
  70. /**
  71. *检查Set长度
  72. *@paramkey
  73. *@return
  74. */
  75. publiclongcountSet(Stringkey){
  76. if(key==null){
  77. return0;
  78. }
  79. ShardedJedisshardedJedis=null;
  80. try{
  81. shardedJedis=shardedJedisPool.getResource();
  82. returnshardedJedis.scard(key);
  83. }catch(Exceptionex){
  84. logger.error("countSeterror.",ex);
  85. returnBrokenResource(shardedJedis);
  86. }finally{
  87. returnResource(shardedJedis);
  88. }
  89. return0;
  90. }
  91. /**
  92. *添加到Set中(同时设置过期时间)
  93. *@paramkeykey值
  94. *@paramseconds过期时间单位s
  95. *@paramvalue
  96. *@return
  97. */
  98. publicbooleanaddSet(Stringkey,intseconds,String...value){
  99. booleanresult=addSet(key,value);
  100. if(result){
  101. longi=expire(key,seconds);
  102. returni==1;
  103. }
  104. returnfalse;
  105. }
  106. /**
  107. *添加到Set中
  108. *@paramkey
  109. *@paramvalue
  110. *@return
  111. */
  112. publicbooleanaddSet(Stringkey,String...value){
  113. if(key==null||value==null){
  114. returnfalse;
  115. }
  116. ShardedJedisshardedJedis=null;
  117. try{
  118. shardedJedis=shardedJedisPool.getResource();
  119. shardedJedis.sadd(key,value);
  120. returntrue;
  121. }catch(Exceptionex){
  122. logger.error("setListerror.",ex);
  123. returnBrokenResource(shardedJedis);
  124. }finally{
  125. returnResource(shardedJedis);
  126. }
  127. returnfalse;
  128. }
  129. /**
  130. *@paramkey
  131. *@paramvalue
  132. *@return判断值是否包含在set中
  133. */
  134. publicbooleancontainsInSet(Stringkey,Stringvalue){
  135. if(key==null||value==null){
  136. returnfalse;
  137. }
  138. ShardedJedisshardedJedis=null;
  139. try{
  140. shardedJedis=shardedJedisPool.getResource();
  141. returnshardedJedis.sismember(key,value);
  142. }catch(Exceptionex){
  143. logger.error("setListerror.",ex);
  144. returnBrokenResource(shardedJedis);
  145. }finally{
  146. returnResource(shardedJedis);
  147. }
  148. returnfalse;
  149. }
  150. /**
  151. *获取Set
  152. *@paramkey
  153. *@return
  154. */
  155. publicSet<String>getSet(Stringkey){
  156. ShardedJedisshardedJedis=null;
  157. try{
  158. shardedJedis=shardedJedisPool.getResource();
  159. returnshardedJedis.smembers(key);
  160. }catch(Exceptionex){
  161. logger.error("getListerror.",ex);
  162. returnBrokenResource(shardedJedis);
  163. }finally{
  164. returnResource(shardedJedis);
  165. }
  166. returnnull;
  167. }
  168. /**
  169. *从set中删除value
  170. *@paramkey
  171. *@return
  172. */
  173. publicbooleanremoveSetValue(Stringkey,String...value){
  174. ShardedJedisshardedJedis=null;
  175. try{
  176. shardedJedis=shardedJedisPool.getResource();
  177. shardedJedis.srem(key,value);
  178. returntrue;
  179. }catch(Exceptionex){
  180. logger.error("getListerror.",ex);
  181. returnBrokenResource(shardedJedis);
  182. }finally{
  183. returnResource(shardedJedis);
  184. }
  185. returnfalse;
  186. }
  187. /**
  188. *从list中删除value默认count1
  189. *@paramkey
  190. *@paramvalues值list
  191. *@return
  192. */
  193. publicintremoveListValue(Stringkey,List<String>values){
  194. returnremoveListValue(key,1,values);
  195. }
  196. /**
  197. *从list中删除value
  198. *@paramkey
  199. *@paramcount
  200. *@paramvalues值list
  201. *@return
  202. */
  203. publicintremoveListValue(Stringkey,longcount,List<String>values){
  204. intresult=0;
  205. if(values!=null&&values.size()>0){
  206. for(Stringvalue:values){
  207. if(removeListValue(key,count,value)){
  208. result++;
  209. }
  210. }
  211. }
  212. returnresult;
  213. }
  214. /**
  215. *从list中删除value
  216. *@paramkey
  217. *@paramcount要删除个数
  218. *@paramvalue
  219. *@return
  220. */
  221. publicbooleanremoveListValue(Stringkey,longcount,Stringvalue){
  222. ShardedJedisshardedJedis=null;
  223. try{
  224. shardedJedis=shardedJedisPool.getResource();
  225. shardedJedis.lrem(key,count,value);
  226. returntrue;
  227. }catch(Exceptionex){
  228. logger.error("getListerror.",ex);
  229. returnBrokenResource(shardedJedis);
  230. }finally{
  231. returnResource(shardedJedis);
  232. }
  233. returnfalse;
  234. }
  235. /**
  236. *截取List
  237. *@paramkey
  238. *@paramstart起始位置
  239. *@paramend结束位置
  240. *@return
  241. */
  242. publicList<String>rangeList(Stringkey,longstart,longend){
  243. if(key==null||key.equals("")){
  244. returnnull;
  245. }
  246. ShardedJedisshardedJedis=null;
  247. try{
  248. shardedJedis=shardedJedisPool.getResource();
  249. returnshardedJedis.lrange(key,start,end);
  250. }catch(Exceptionex){
  251. logger.error("rangeList出错[key="+key+"start="+start+"end="+end+"]"+ex.getMessage(),ex);
  252. returnBrokenResource(shardedJedis);
  253. }finally{
  254. returnResource(shardedJedis);
  255. }
  256. returnnull;
  257. }
  258. /**
  259. *检查List长度
  260. *@paramkey
  261. *@return
  262. */
  263. publiclongcountList(Stringkey){
  264. if(key==null){
  265. return0;
  266. }
  267. ShardedJedisshardedJedis=null;
  268. try{
  269. shardedJedis=shardedJedisPool.getResource();
  270. returnshardedJedis.llen(key);
  271. }catch(Exceptionex){
  272. logger.error("countListerror.",ex);
  273. returnBrokenResource(shardedJedis);
  274. }finally{
  275. returnResource(shardedJedis);
  276. }
  277. return0;
  278. }
  279. /**
  280. *添加到List中(同时设置过期时间)
  281. *@paramkeykey值
  282. *@paramseconds过期时间单位s
  283. *@paramvalue
  284. *@return
  285. */
  286. publicbooleanaddList(Stringkey,intseconds,String...value){
  287. booleanresult=addList(key,value);
  288. if(result){
  289. longi=expire(key,seconds);
  290. returni==1;
  291. }
  292. returnfalse;
  293. }
  294. /**
  295. *添加到List
  296. *@paramkey
  297. *@paramvalue
  298. *@return
  299. */
  300. publicbooleanaddList(Stringkey,String...value){
  301. if(key==null||value==null){
  302. returnfalse;
  303. }
  304. ShardedJedisshardedJedis=null;
  305. try{
  306. shardedJedis=shardedJedisPool.getResource();
  307. shardedJedis.lpush(key,value);
  308. returntrue;
  309. }catch(Exceptionex){
  310. logger.error("setListerror.",ex);
  311. returnBrokenResource(shardedJedis);
  312. }finally{
  313. returnResource(shardedJedis);
  314. }
  315. returnfalse;
  316. }
  317. /**
  318. *添加到List(只新增)
  319. *@paramkey
  320. *@paramvalue
  321. *@return
  322. */
  323. publicbooleanaddList(Stringkey,List<String>list){
  324. if(key==null||list==null||list.size()==0){
  325. returnfalse;
  326. }
  327. for(Stringvalue:list){
  328. addList(key,value);
  329. }
  330. returntrue;
  331. }
  332. /**
  333. *获取List
  334. *@paramkey
  335. *@return
  336. */
  337. publicList<String>getList(Stringkey){
  338. ShardedJedisshardedJedis=null;
  339. try{
  340. shardedJedis=shardedJedisPool.getResource();
  341. returnshardedJedis.lrange(key,0,-1);
  342. }catch(Exceptionex){
  343. logger.error("getListerror.",ex);
  344. returnBrokenResource(shardedJedis);
  345. }finally{
  346. returnResource(shardedJedis);
  347. }
  348. returnnull;
  349. }
  350. /**
  351. *设置HashSet对象
  352. *
  353. *@paramdomain域名
  354. *@paramkey键值
  355. *@paramvalueJsonStringorStringvalue
  356. *@return
  357. */
  358. publicbooleansetHSet(Stringdomain,Stringkey,Stringvalue){
  359. if(value==null)returnfalse;
  360. ShardedJedisshardedJedis=null;
  361. try{
  362. shardedJedis=shardedJedisPool.getResource();
  363. shardedJedis.hset(domain,key,value);
  364. returntrue;
  365. }catch(Exceptionex){
  366. logger.error("setHSeterror.",ex);
  367. returnBrokenResource(shardedJedis);
  368. }finally{
  369. returnResource(shardedJedis);
  370. }
  371. returnfalse;
  372. }
  373. /**
  374. *获得HashSet对象
  375. *
  376. *@paramdomain域名
  377. *@paramkey键值
  378. *@returnJsonStringorStringvalue
  379. */
  380. publicStringgetHSet(Stringdomain,Stringkey){
  381. ShardedJedisshardedJedis=null;
  382. try{
  383. shardedJedis=shardedJedisPool.getResource();
  384. returnshardedJedis.hget(domain,key);
  385. }catch(Exceptionex){
  386. logger.error("getHSeterror.",ex);
  387. returnBrokenResource(shardedJedis);
  388. }finally{
  389. returnResource(shardedJedis);
  390. }
  391. returnnull;
  392. }
  393. /**
  394. *删除HashSet对象
  395. *
  396. *@paramdomain域名
  397. *@paramkey键值
  398. *@return删除的记录数
  399. */
  400. publiclongdelHSet(Stringdomain,Stringkey){
  401. ShardedJedisshardedJedis=null;
  402. longcount=0;
  403. try{
  404. shardedJedis=shardedJedisPool.getResource();
  405. count=shardedJedis.hdel(domain,key);
  406. }catch(Exceptionex){
  407. logger.error("delHSeterror.",ex);
  408. returnBrokenResource(shardedJedis);
  409. }finally{
  410. returnResource(shardedJedis);
  411. }
  412. returncount;
  413. }
  414. /**
  415. *删除HashSet对象
  416. *
  417. *@paramdomain域名
  418. *@paramkey键值
  419. *@return删除的记录数
  420. */
  421. publiclongdelHSet(Stringdomain,String...key){
  422. ShardedJedisshardedJedis=null;
  423. longcount=0;
  424. try{
  425. shardedJedis=shardedJedisPool.getResource();
  426. count=shardedJedis.hdel(domain,key);
  427. }catch(Exceptionex){
  428. logger.error("delHSeterror.",ex);
  429. returnBrokenResource(shardedJedis);
  430. }finally{
  431. returnResource(shardedJedis);
  432. }
  433. returncount;
  434. }
  435. /**
  436. *判断key是否存在
  437. *
  438. *@paramdomain域名
  439. *@paramkey键值
  440. *@return
  441. */
  442. publicbooleanexistsHSet(Stringdomain,Stringkey){
  443. ShardedJedisshardedJedis=null;
  444. booleanisExist=false;
  445. try{
  446. shardedJedis=shardedJedisPool.getResource();
  447. isExist=shardedJedis.hexists(domain,key);
  448. }catch(Exceptionex){
  449. logger.error("existsHSeterror.",ex);
  450. returnBrokenResource(shardedJedis);
  451. }finally{
  452. returnResource(shardedJedis);
  453. }
  454. returnisExist;
  455. }
  456. /**
  457. *全局扫描hset
  458. *
  459. *@parammatchfield匹配模式
  460. *@return
  461. */
  462. publicList<Map.Entry<String,String>>scanHSet(Stringdomain,Stringmatch){
  463. ShardedJedisshardedJedis=null;
  464. try{
  465. intcursor=0;
  466. shardedJedis=shardedJedisPool.getResource();
  467. ScanParamsscanParams=newScanParams();
  468. scanParams.match(match);
  469. Jedisjedis=shardedJedis.getShard(domain);
  470. ScanResult<Map.Entry<String,String>>scanResult;
  471. List<Map.Entry<String,String>>list=newArrayList<Map.Entry<String,String>>();
  472. do{
  473. scanResult=jedis.hscan(domain,String.valueOf(cursor),scanParams);
  474. list.addAll(scanResult.getResult());
  475. cursor=Integer.parseInt(scanResult.getStringCursor());
  476. }while(cursor>0);
  477. returnlist;
  478. }catch(Exceptionex){
  479. logger.error("scanHSeterror.",ex);
  480. returnBrokenResource(shardedJedis);
  481. }finally{
  482. returnResource(shardedJedis);
  483. }
  484. returnnull;
  485. }
  486. /**
  487. *返回domain指定的哈希集中所有字段的value值
  488. *
  489. *@paramdomain
  490. *@return
  491. */
  492. publicList<String>hvals(Stringdomain){
  493. ShardedJedisshardedJedis=null;
  494. List<String>retList=null;
  495. try{
  496. shardedJedis=shardedJedisPool.getResource();
  497. retList=shardedJedis.hvals(domain);
  498. }catch(Exceptionex){
  499. logger.error("hvalserror.",ex);
  500. returnBrokenResource(shardedJedis);
  501. }finally{
  502. returnResource(shardedJedis);
  503. }
  504. returnretList;
  505. }
  506. /**
  507. *返回domain指定的哈希集中所有字段的key值
  508. *
  509. *@paramdomain
  510. *@return
  511. */
  512. publicSet<String>hkeys(Stringdomain){
  513. ShardedJedisshardedJedis=null;
  514. Set<String>retList=null;
  515. try{
  516. shardedJedis=shardedJedisPool.getResource();
  517. retList=shardedJedis.hkeys(domain);
  518. }catch(Exceptionex){
  519. logger.error("hkeyserror.",ex);
  520. returnBrokenResource(shardedJedis);
  521. }finally{
  522. returnResource(shardedJedis);
  523. }
  524. returnretList;
  525. }
  526. /**
  527. *返回domain指定的哈希key值总数
  528. *
  529. *@paramdomain
  530. *@return
  531. */
  532. publiclonglenHset(Stringdomain){
  533. ShardedJedisshardedJedis=null;
  534. longretList=0;
  535. try{
  536. shardedJedis=shardedJedisPool.getResource();
  537. retList=shardedJedis.hlen(domain);
  538. }catch(Exceptionex){
  539. logger.error("hkeyserror.",ex);
  540. returnBrokenResource(shardedJedis);
  541. }finally{
  542. returnResource(shardedJedis);
  543. }
  544. returnretList;
  545. }
  546. /**
  547. *设置排序集合
  548. *
  549. *@paramkey
  550. *@paramscore
  551. *@paramvalue
  552. *@return
  553. */
  554. publicbooleansetSortedSet(Stringkey,longscore,Stringvalue){
  555. ShardedJedisshardedJedis=null;
  556. try{
  557. shardedJedis=shardedJedisPool.getResource();
  558. shardedJedis.zadd(key,score,value);
  559. returntrue;
  560. }catch(Exceptionex){
  561. logger.error("setSortedSeterror.",ex);
  562. returnBrokenResource(shardedJedis);
  563. }finally{
  564. returnResource(shardedJedis);
  565. }
  566. returnfalse;
  567. }
  568. /**
  569. *获得排序集合
  570. *
  571. *@paramkey
  572. *@paramstartScore
  573. *@paramendScore
  574. *@paramorderByDesc
  575. *@return
  576. */
  577. publicSet<String>getSoredSet(Stringkey,longstartScore,longendScore,booleanorderByDesc){
  578. ShardedJedisshardedJedis=null;
  579. try{
  580. shardedJedis=shardedJedisPool.getResource();
  581. if(orderByDesc){
  582. returnshardedJedis.zrevrangeByScore(key,endScore,startScore);
  583. }else{
  584. returnshardedJedis.zrangeByScore(key,startScore,endScore);
  585. }
  586. }catch(Exceptionex){
  587. logger.error("getSoredSeterror.",ex);
  588. returnBrokenResource(shardedJedis);
  589. }finally{
  590. returnResource(shardedJedis);
  591. }
  592. returnnull;
  593. }
  594. /**
  595. *计算排序长度
  596. *
  597. *@paramkey
  598. *@paramstartScore
  599. *@paramendScore
  600. *@return
  601. */
  602. publiclongcountSoredSet(Stringkey,longstartScore,longendScore){
  603. ShardedJedisshardedJedis=null;
  604. try{
  605. shardedJedis=shardedJedisPool.getResource();
  606. Longcount=shardedJedis.zcount(key,startScore,endScore);
  607. returncount==null?0L:count;
  608. }catch(Exceptionex){
  609. logger.error("countSoredSeterror.",ex);
  610. returnBrokenResource(shardedJedis);
  611. }finally{
  612. returnResource(shardedJedis);
  613. }
  614. return0L;
  615. }
  616. /**
  617. *删除排序集合
  618. *
  619. *@paramkey
  620. *@paramvalue
  621. *@return
  622. */
  623. publicbooleandelSortedSet(Stringkey,Stringvalue){
  624. ShardedJedisshardedJedis=null;
  625. try{
  626. shardedJedis=shardedJedisPool.getResource();
  627. longcount=shardedJedis.zrem(key,value);
  628. returncount>0;
  629. }catch(Exceptionex){
  630. logger.error("delSortedSeterror.",ex);
  631. returnBrokenResource(shardedJedis);
  632. }finally{
  633. returnResource(shardedJedis);
  634. }
  635. returnfalse;
  636. }
  637. /**
  638. *获得排序集合
  639. *
  640. *@paramkey
  641. *@paramstartRange
  642. *@paramendRange
  643. *@paramorderByDesc
  644. *@return
  645. */
  646. publicSet<String>getSoredSetByRange(Stringkey,intstartRange,intendRange,booleanorderByDesc){
  647. ShardedJedisshardedJedis=null;
  648. try{
  649. shardedJedis=shardedJedisPool.getResource();
  650. if(orderByDesc){
  651. returnshardedJedis.zrevrange(key,startRange,endRange);
  652. }else{
  653. returnshardedJedis.zrange(key,startRange,endRange);
  654. }
  655. }catch(Exceptionex){
  656. logger.error("getSoredSetByRangeerror.",ex);
  657. returnBrokenResource(shardedJedis);
  658. }finally{
  659. returnResource(shardedJedis);
  660. }
  661. returnnull;
  662. }
  663. /**
  664. *获得排序打分
  665. *
  666. *@paramkey
  667. *@return
  668. */
  669. publicDoublegetScore(Stringkey,Stringmember){
  670. ShardedJedisshardedJedis=null;
  671. try{
  672. shardedJedis=shardedJedisPool.getResource();
  673. returnshardedJedis.zscore(key,member);
  674. }catch(Exceptionex){
  675. logger.error("getSoredSeterror.",ex);
  676. returnBrokenResource(shardedJedis);
  677. }finally{
  678. returnResource(shardedJedis);
  679. }
  680. returnnull;
  681. }
  682. publicbooleanset(Stringkey,Stringvalue,intsecond){
  683. ShardedJedisshardedJedis=null;
  684. try{
  685. shardedJedis=shardedJedisPool.getResource();
  686. shardedJedis.setex(key,second,value);
  687. returntrue;
  688. }catch(Exceptionex){
  689. logger.error("seterror.",ex);
  690. returnBrokenResource(shardedJedis);
  691. }finally{
  692. returnResource(shardedJedis);
  693. }
  694. returnfalse;
  695. }
  696. publicbooleanset(Stringkey,Stringvalue){
  697. ShardedJedisshardedJedis=null;
  698. try{
  699. shardedJedis=shardedJedisPool.getResource();
  700. shardedJedis.set(key,value);
  701. returntrue;
  702. }catch(Exceptionex){
  703. logger.error("seterror.",ex);
  704. returnBrokenResource(shardedJedis);
  705. }finally{
  706. returnResource(shardedJedis);
  707. }
  708. returnfalse;
  709. }
  710. publicStringget(Stringkey,StringdefaultValue){
  711. ShardedJedisshardedJedis=null;
  712. try{
  713. shardedJedis=shardedJedisPool.getResource();
  714. returnshardedJedis.get(key)==null?defaultValue:shardedJedis.get(key);
  715. }catch(Exceptionex){
  716. logger.error("geterror.",ex);
  717. returnBrokenResource(shardedJedis);
  718. }finally{
  719. returnResource(shardedJedis);
  720. }
  721. returndefaultValue;
  722. }
  723. publicbooleandel(Stringkey){
  724. ShardedJedisshardedJedis=null;
  725. try{
  726. shardedJedis=shardedJedisPool.getResource();
  727. shardedJedis.del(key);
  728. returntrue;
  729. }catch(Exceptionex){
  730. logger.error("delerror.",ex);
  731. returnBrokenResource(shardedJedis);
  732. }finally{
  733. returnResource(shardedJedis);
  734. }
  735. returnfalse;
  736. }
  737. publiclongincr(Stringkey){
  738. ShardedJedisshardedJedis=null;
  739. try{
  740. shardedJedis=shardedJedisPool.getResource();
  741. returnshardedJedis.incr(key);
  742. }catch(Exceptionex){
  743. logger.error("increrror.",ex);
  744. returnBrokenResource(shardedJedis);
  745. }finally{
  746. returnResource(shardedJedis);
  747. }
  748. return0;
  749. }
  750. publiclongdecr(Stringkey){
  751. ShardedJedisshardedJedis=null;
  752. try{
  753. shardedJedis=shardedJedisPool.getResource();
  754. returnshardedJedis.decr(key);
  755. }catch(Exceptionex){
  756. logger.error("increrror.",ex);
  757. returnBrokenResource(shardedJedis);
  758. }finally{
  759. returnResource(shardedJedis);
  760. }
  761. return0;
  762. }
  763. privatevoidreturnBrokenResource(ShardedJedisshardedJedis){
  764. try{
  765. shardedJedisPool.returnBrokenResource(shardedJedis);
  766. }catch(Exceptione){
  767. logger.error("returnBrokenResourceerror.",e);
  768. }
  769. }
  770. privatevoidreturnResource(ShardedJedisshardedJedis){
  771. try{
  772. shardedJedisPool.returnResource(shardedJedis);
  773. }catch(Exceptione){
  774. logger.error("returnResourceerror.",e);
  775. }
  776. }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表