Redis 工具类_慕课版本
生活随笔
收集整理的這篇文章主要介紹了
Redis 工具类_慕课版本
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| Redis 連接池 | RedisPoolUtil.java |
| Redis 集群 連接 | RedisShardedPoolUtil.java |
| 通用部分 | RedisPool.java |
| 通用部分 | RedisShardedPool.java |
| 通用部分 | RedissonManager.java |
RedisPoolUtil.java
package com.mmall.util;import com.mmall.common.RedisPool; import lombok.extern.slf4j.Slf4j; import redis.clients.jedis.Jedis;/*** Created by geely*/ @Slf4j public class RedisPoolUtil {/*** 設置key的有效期,單位是秒* @param key* @param exTime* @return*/public static Long expire(String key,int exTime){Jedis jedis = null;Long result = null;try {jedis = RedisPool.getJedis();result = jedis.expire(key,exTime);} catch (Exception e) {log.error("expire key:{} error",key,e);RedisPool.returnBrokenResource(jedis);return result;}RedisPool.returnResource(jedis);return result;}//exTime的單位是秒public static String setEx(String key,String value,int exTime){Jedis jedis = null;String result = null;try {jedis = RedisPool.getJedis();result = jedis.setex(key,exTime,value);} catch (Exception e) {log.error("setex key:{} value:{} error",key,value,e);RedisPool.returnBrokenResource(jedis);return result;}RedisPool.returnResource(jedis);return result;}public static String set(String key,String value){Jedis jedis = null;String result = null;try {jedis = RedisPool.getJedis();result = jedis.set(key,value);} catch (Exception e) {log.error("set key:{} value:{} error",key,value,e);RedisPool.returnBrokenResource(jedis);return result;}RedisPool.returnResource(jedis);return result;}public static String get(String key){Jedis jedis = null;String result = null;try {jedis = RedisPool.getJedis();result = jedis.get(key);} catch (Exception e) {log.error("get key:{} error",key,e);RedisPool.returnBrokenResource(jedis);return result;}RedisPool.returnResource(jedis);return result;}public static Long del(String key){Jedis jedis = null;Long result = null;try {jedis = RedisPool.getJedis();result = jedis.del(key);} catch (Exception e) {log.error("del key:{} error",key,e);RedisPool.returnBrokenResource(jedis);return result;}RedisPool.returnResource(jedis);return result;}public static void main(String[] args) {Jedis jedis = RedisPool.getJedis();RedisShardedPoolUtil.set("keyTest","value");String value = RedisShardedPoolUtil.get("keyTest");RedisShardedPoolUtil.setEx("keyex","valueex",60*10);RedisShardedPoolUtil.expire("keyTest",60*20);RedisShardedPoolUtil.del("keyTest");String aaa = RedisShardedPoolUtil.get(null);System.out.println(aaa);System.out.println("end");} }RedisShardedPoolUtil.java
package com.mmall.util;import com.mmall.common.RedisShardedPool; import lombok.extern.slf4j.Slf4j; import redis.clients.jedis.ShardedJedis;/*** Created by geely*/ @Slf4j public class RedisShardedPoolUtil {/*** 設置key的有效期,單位是秒* @param key* @param exTime* @return*/public static Long expire(String key,int exTime){ShardedJedis jedis = null;Long result = null;try {jedis = RedisShardedPool.getJedis();result = jedis.expire(key,exTime);} catch (Exception e) {log.error("expire key:{} error",key,e);RedisShardedPool.returnBrokenResource(jedis);return result;}RedisShardedPool.returnResource(jedis);return result;}//exTime的單位是秒public static String setEx(String key,String value,int exTime){ShardedJedis jedis = null;String result = null;try {jedis = RedisShardedPool.getJedis();result = jedis.setex(key,exTime,value);} catch (Exception e) {log.error("setex key:{} value:{} error",key,value,e);RedisShardedPool.returnBrokenResource(jedis);return result;}RedisShardedPool.returnResource(jedis);return result;}public static String set(String key,String value){ShardedJedis jedis = null;String result = null;try {jedis = RedisShardedPool.getJedis();result = jedis.set(key,value);} catch (Exception e) {log.error("set key:{} value:{} error",key,value,e);RedisShardedPool.returnBrokenResource(jedis);return result;}RedisShardedPool.returnResource(jedis);return result;}public static String getSet(String key,String value){ShardedJedis jedis = null;String result = null;try {jedis = RedisShardedPool.getJedis();result = jedis.getSet(key,value);} catch (Exception e) {log.error("getset key:{} value:{} error",key,value,e);RedisShardedPool.returnBrokenResource(jedis);return result;}RedisShardedPool.returnResource(jedis);return result;}public static String get(String key){ShardedJedis jedis = null;String result = null;try {jedis = RedisShardedPool.getJedis();result = jedis.get(key);} catch (Exception e) {log.error("get key:{} error",key,e);RedisShardedPool.returnBrokenResource(jedis);return result;}RedisShardedPool.returnResource(jedis);return result;}public static Long del(String key){ShardedJedis jedis = null;Long result = null;try {jedis = RedisShardedPool.getJedis();result = jedis.del(key);} catch (Exception e) {log.error("del key:{} error",key,e);RedisShardedPool.returnBrokenResource(jedis);return result;}RedisShardedPool.returnResource(jedis);return result;}public static Long setnx(String key,String value){ShardedJedis jedis = null;Long result = null;try {jedis = RedisShardedPool.getJedis();result = jedis.setnx(key,value);} catch (Exception e) {log.error("setnx key:{} value:{} error",key,value,e);RedisShardedPool.returnBrokenResource(jedis);return result;}RedisShardedPool.returnResource(jedis);return result;}public static void main(String[] args) {ShardedJedis jedis = RedisShardedPool.getJedis();RedisPoolUtil.set("keyTest","value");String value = RedisPoolUtil.get("keyTest");RedisPoolUtil.setEx("keyex","valueex",60*10);RedisPoolUtil.expire("keyTest",60*20);RedisPoolUtil.del("keyTest");String aaa = RedisPoolUtil.get(null);System.out.println(aaa);System.out.println("end");} }通用部分:
RedisShardedPool.java
RedisPool.java
package com.mmall.common;import com.mmall.util.PropertiesUtil; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig;/*** Created by geely*/ public class RedisPool {private static JedisPool pool;//jedis連接池private static Integer maxTotal = Integer.parseInt(PropertiesUtil.getProperty("redis.max.total","20")); //最大連接數private static Integer maxIdle = Integer.parseInt(PropertiesUtil.getProperty("redis.max.idle","20"));//在jedispool中最大的idle狀態(空閑的)的jedis實例的個數private static Integer minIdle = Integer.parseInt(PropertiesUtil.getProperty("redis.min.idle","20"));//在jedispool中最小的idle狀態(空閑的)的jedis實例的個數private static Boolean testOnBorrow = Boolean.parseBoolean(PropertiesUtil.getProperty("redis.test.borrow","true"));//在borrow一個jedis實例的時候,是否要進行驗證操作,如果賦值true。則得到的jedis實例肯定是可以用的。private static Boolean testOnReturn = Boolean.parseBoolean(PropertiesUtil.getProperty("redis.test.return","true"));//在return一個jedis實例的時候,是否要進行驗證操作,如果賦值true。則放回jedispool的jedis實例肯定是可以用的。private static String redisIp = PropertiesUtil.getProperty("redis.ip");private static Integer redisPort = Integer.parseInt(PropertiesUtil.getProperty("redis.port"));private static void initPool(){JedisPoolConfig config = new JedisPoolConfig();config.setMaxTotal(maxTotal);config.setMaxIdle(maxIdle);config.setMinIdle(minIdle);config.setTestOnBorrow(testOnBorrow);config.setTestOnReturn(testOnReturn);config.setBlockWhenExhausted(true);//連接耗盡的時候,是否阻塞,false會拋出異常,true阻塞直到超時。默認為true。pool = new JedisPool(config,redisIp,redisPort,1000*2);}static{initPool();}public static Jedis getJedis(){return pool.getResource();}public static void returnBrokenResource(Jedis jedis){pool.returnBrokenResource(jedis);}public static void returnResource(Jedis jedis){pool.returnResource(jedis);}public static void main(String[] args) {Jedis jedis = pool.getResource();jedis.set("geelykey","geelyvalue");returnResource(jedis);pool.destroy();//臨時調用,銷毀連接池中的所有連接System.out.println("program is end");} }RedissonManager.java
package com.mmall.common;import com.mmall.util.PropertiesUtil; import lombok.extern.slf4j.Slf4j; import org.redisson.Redisson; import org.redisson.config.Config; import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;/*** Created by geely*/ @Component @Slf4j public class RedissonManager {private Config config = new Config();private Redisson redisson = null;public Redisson getRedisson() {return redisson;}private static String redis1Ip = PropertiesUtil.getProperty("redis1.ip");private static Integer redis1Port = Integer.parseInt(PropertiesUtil.getProperty("redis1.port"));private static String redis2Ip = PropertiesUtil.getProperty("redis2.ip");private static Integer redis2Port = Integer.parseInt(PropertiesUtil.getProperty("redis2.port"));@PostConstructprivate void init(){try {config.useSingleServer().setAddress(new StringBuilder().append(redis1Ip).append(":").append(redis1Port).toString());redisson = (Redisson) Redisson.create(config);log.info("初始化Redisson結束");} catch (Exception e) {log.error("redisson init error",e);}} }總結
以上是生活随笔為你收集整理的Redis 工具类_慕课版本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第九篇:Spring Boot整合Spr
- 下一篇: 将Github中Fork的代码,克隆到本