如何安装redis不作讲解,增长pom依赖redis
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.6.0</version> </dependency>
1.配置文件 redisSimple.properties工具
redis.ip=127.0.0.1 redis.port=6379 #最大链接数 redis.max.total=20 #最大空闲数 redis.max.idle=10 #最小空闲数 redis.min.idle=2 #从jedis链接池获取链接时,校验并返回可用的链接 redis.test.borrow=true #把链接放回jedis链接池时,校验并返回可用的链接 redis.test.return=false
2.读取配置文件类:在集群里有讲解,再也不赘述测试
3.单实例链接池:ip
import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; 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"); }
4,简单工具类get
import RedisPool; import lombok.extern.slf4j.Slf4j; import redis.clients.jedis.Jedis; @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"); } }