packagejavax.utils;importjava.util.ArrayList;importjava.util.List;importredis.clients.jedis.JedisPoolConfig;importredis.clients.jedis.JedisShardInfo;importredis.clients.jedis.ShardedJedis;importredis.clients.jedis.ShardedJedisPool;/*** Redis工具类
*
*@authorLogan
*@version1.0.0*/
public classRedisUtils {private static ShardedJedisPool jedisPool = null;static{
JedisPoolConfig jedisPoolConfig= newJedisPoolConfig();//设置最大对象数
jedisPoolConfig.setMaxTotal(20);//最大能够保持空闲状态的对象数
jedisPoolConfig.setMaxIdle(10);//超时时间
jedisPoolConfig.setMaxWaitMillis(10000);//在获取连接的时候检查有效性, 默认false
jedisPoolConfig.setTestOnBorrow(true);//在返回Object时, 对返回的connection进行validateObject校验
jedisPoolConfig.setTestOnReturn(true);//如果是集群,可以全部加入list中
List shardInfos = new ArrayList();
JedisShardInfo shardInfo= new JedisShardInfo("192.168.32.10", 6379);
shardInfo.setPassword("redis123.");
shardInfos.add(shardInfo);
jedisPool= newShardedJedisPool(jedisPoolConfig, shardInfos);
}/*** 从连接池中获取一个ShardedJedis对象*/
public staticShardedJedis getJedis() {returnjedisPool.getResource();
}/*** 关闭ShardedJedis对象,放回池中*/
public static voidcloseJedis(ShardedJedis jedis) {
jedis.close();
}/*** 通过key获取String类型Value
*
*@paramkey 键
*@return值*/
public staticString get(String key) {try(
ShardedJedis jedis=jedisPool.getResource();
) {returnjedis.get(key);
}
}/*** 通过key获取字节数组类型Value
*
*@paramkey 键
*@return值*/
public static byte[] get(byte[] key) {try(
ShardedJedis jedis=jedisPool.getResource();
) {returnjedis.get(key);
}
}/*** 设置String类型key和value
*
*@paramkey 键
*@paramvalue 值
*@return
*/
public staticString set(String key, String value) {try(
ShardedJedis jedis=jedisPool.getResource();
) {returnjedis.set(key, value);
}
}/*** 设置字节数组类型key和value
*
*@paramkey 键
*@paramvalue 值
*@return
*/
public static String set(byte[] key, byte[] value) {try(
ShardedJedis jedis=jedisPool.getResource();
) {returnjedis.set(key, value);
}
}/*** 删除指定key*/
public staticLong del(String key) {try(
ShardedJedis jedis=jedisPool.getResource();
) {returnjedis.del(key);
}
}/*** 左侧放入集合
*
*@paramkey 键
*@paramvalues 值集合
*@return
*/
public staticLong lpush(String key, String... values) {try(
ShardedJedis jedis=jedisPool.getResource();
) {returnjedis.lpush(key, values);
}
}/*** 左侧弹出一个元素
*
*@paramkey 指定键
*@return左侧第一个元素*/
public staticString lpop(String key) {try(
ShardedJedis jedis=jedisPool.getResource();
) {returnjedis.lpop(key);
}
}/*** 右侧放入集合
*
*@paramkey 键
*@paramvalues 值集合
*@return
*/
public staticLong rpush(String key, String... values) {try(
ShardedJedis jedis=jedisPool.getResource();
) {returnjedis.rpush(key, values);
}
}/*** 右侧弹出一个元素
*
*@paramkey 指定键
*@return右侧第一个元素*/
public staticString rpop(String key) {try(
ShardedJedis jedis=jedisPool.getResource();
) {returnjedis.rpop(key);
}
}
}