import redis.clients.jedis.BinaryClient; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.util.List; import java.util.Map; import java.util.Set; /** * 工具类 * @Author mufeng * @Date 2019-5-22 15:34 */ public class RedisUtils { private Jedis jedis; public RedisUtils(){ JedisPool pool = getPool(); jedis=pool.getResource(); } public JedisPool getPool(){ JedisPool pool=null; JedisPoolConfig config = new JedisPoolConfig(); config.setMaxIdle(Integer.parseInt("50")); config.setMaxTotal(Integer.parseInt("1000")); config.setMaxWaitMillis((long)Integer.parseInt("3000")); config.setTestOnBorrow(Boolean.parseBoolean("true")); config.setTestOnReturn(Boolean.parseBoolean("true")); config.setTimeBetweenEvictionRunsMillis(-1L); String ip="10.20.24.113"; int port=6379; String password="redispass"; pool=new JedisPool(config,ip,port,2000,password); return pool; } public String get(String key){ return jedis.get(key); } public String set(String key,String value){ return jedis.set(key,value); } public Long del(String... keys){ return jedis.del(keys); } /** * 通过key向指定的value追加值 * @param key * @param str * @return */ public Long append(String key,String str){ return jedis.append(key,str); } public Boolean exist(String key){ return jedis.exists(key); } /** * 设置key-value,若key已存在返回0 则返回1 * @param key * @param value * @return */ public Long setnx(String key,String value){ return jedis.setnx(key,value); } /** * 设置key-value并指定键值的有效期 * @param key * @param seconds 以秒为单位 * @param value * @return */ public String setex(String key,int seconds,String value){ return jedis.setex(key,seconds,value); } /** * 从指定的位置替换原先value aa 1 tt ->atta * 值不存在也会有空格 ee 1 uu->" uu" * @param key * @param offset * @param str * @return */ public Long setrange(String key,int offset,String str){ return jedis.setrange(key,offset,str); } /** * 通过批量keys获取批量values * @param keys * @return */ public List<String> mget(String... keys){ return jedis.mget(keys); } /** * 批量设置keyvalues,也可以一个 "key","value",.. * @param keyvalues * @return */ public String mset(String... keyvalues){ return jedis.mset(keyvalues); } /** * 批量设置keyvalues,也可以一个 如果key存在则会失败,操作回滚 * @param keyvalues * @return */ public Long msetnx(String... keyvalues){ return jedis.msetnx(keyvalues); } /** * 设置key的值,返回一个旧值,key不存在,也会设置 * @param key * @param value * @return */ public String getSet(String key,String value){ return jedis.getSet(key,value); } /** * 通过key和指定下标获取指定下标的值 * @param key * @param startOffset * @param endOffset * @return */ public String getrange(String key,int startOffset,int endOffset){ return jedis.getrange(key,startOffset,endOffset); } /** * 通过key对value加1操作,如果value不是int类型会返回错误,如果key不存在,value为1 * @param key * @return */ public Long incr(String key){ return jedis.incr(key); } /** * 通过key对value加指定的值,如果value不是int类型会返回错误,若key不存在,value为该值 * @param key * @param integer * @return */ public Long incrBy(String key,int integer){ return jedis.incrBy(key,integer); } /** * 通过key对value减去1操作,如果value不是int类型会返回错误,如果key不存在,value为-1 * @param key * @return */ public Long decr(String key){ return jedis.decr(key); } /** * 通过key对value减去指定的值,如果value不是int类型会返回错误,若key不存在,value为该值 * @param key * @param integer * @return */ public Long decrBy(String key,int integer){ return jedis.decrBy(key,integer); } /** * 通过key获取value的长度 * @param key * @return */ public Long StrLen(String key){ return jedis.strlen(key); } /** * 通过key给field设置指定的值,若key不存在则先创建,若field已存在,返回0 * @param key * @param field * @param value * @return */ public Long hsetnx(String key,String field,String value){ return jedis.hsetnx(key,field,value); } /** * 通过key给field设置指定的值,若key不存在则先创建 * @param key * @param field * @param value * @return */ public Long hset(String key,String field,String value){ return jedis.hset(key,field,value); } /** * 通过key同时设置多个field * @param key * @param hash * @return */ public String hmset(String key, Map<String,String>hash){ return jedis.hmset(key,hash); } /** * 通过key和field获取指定的值 * @param key * @param field * @return */ public String hget(String key,String field){ return jedis.hget(key,field); } /** * 设置key的过期时间秒 * @param key * @param seconds * @return */ public Long expirt(String key,int seconds){ return jedis.expire(key,seconds); } /** * 通过key和fields获取指定的value,如果没有value,返回null * @param key * @param field * @return */ public List<String> hmget(String key,String... field){ return jedis.hmget(key,field); } /** * 通过key给指定的field加指定的值 * @param key * @param field * @param value * @return */ public Long hincBy(String key,String field,Long value){ return jedis.hincrBy(key,field,value); } /** * 通过key和field判断指定的value是否存在 * @param key * @param field * @return */ public Boolean hexist(String key,String field){ return jedis.hexists(key,field); } /** * 通过key返回field数量 * @param key * @return */ public Long hlen(String key){ return jedis.hlen(key); } /** * 通过key删除指定field * @param key * @param field 一个 也可以是数组 * @return */ public Long hdel(String key,String... field){ return jedis.hdel(key,field); } /** * 通过field获取所有field * @param key * @return */ public Set<String> hkeys(String key){ return jedis.hkeys(key); } /** * 通过key获取和key有关的value * @param key * @return */ public List<String> hvals(String key){ return jedis.hvals(key); } /** * 通过key获取有关的field和value * @param key * @return */ public Map<String,String> hgetall(String key){ return jedis.hgetAll(key); } /** * 通过key向list头部添加字符串 * @param key * @param strs * @return */ public Long lpush(String key,String... strs){ return jedis.lpush(key,strs); } /** * 通过key向list尾部添加字符串 * @param key * @param strs * @return */ public Long rpush(String key,String... strs){ return jedis.rpush(key,strs); } /** * 通过key向list指定位置添加字符串 * @param key * @param where LIST_POSITION 枚举类型 * @param pivot list内的value * @param value * @return */ public Long linsert(String key, BinaryClient.LIST_POSITION where,String pivot,String value){ return jedis.linsert(key,where,pivot,value); } /** * 通过key设置list指定下标位置value,越界报错 * @param key * @param index * @param value * @return */ public String lset(String key,Long index,String value){ return jedis.lset(key,index,value); } /** * 通过key删除count个与value相同的元素 * @param key * @param count * @param value * @return */ public Long lrem(String key,long count,String value){ return jedis.lrem(key,count,value); } /** * 通过key保留下标start到end的value * @param key * @param start * @param end * @return */ public String ltrim(String key,long start,long end){ return jedis.ltrim(key,start,end); } /** * 通过key删除头部一个value,返回value * @param key * @return */ public String lpop(String key){ return jedis.lpop(key); } /** * 通过key删除尾部一个value,返回value * @param key * @return */ public String rpop(String key){ return jedis.rpop(key); } /** * 通过key删除list尾部一个value,添加到另一个list的头部,返回该value * list为空或不存在返回null * @param srckey * @param dstkey * @return */ public String rpoplpush(String srckey,String dstkey){ return jedis.rpoplpush(srckey,dstkey); } /** * 通过key获取list指定下标的value * @param key * @param index * @return */ public String lindex(String key,long index){ return jedis.lindex(key,index); } /** * 通过key获取list的长度 * @param key * @return */ public Long llen(String key){ return jedis.llen(key); } /** * 通过key获取指定下标位置的value * 若start为0,end为-1,返回所有value * @param key * @param start * @param end * @return */ public List<String> lrange(String key,long start,long end){ return jedis.lrange(key,start,end); } /** * 通过key向set添加value * @param key * @param members * @return */ public Long sadd(String key,String... members){ return jedis.sadd(key,members); } /** * 通过key删除set对应的value值 * @param key * @param members * @return */ public Long srem(String key,String... members){ return jedis.srem(key,members); } /** * 通过key随机删除set一个value * @param key * @return */ public String spop(String key){ return jedis.spop(key); } /** * 通过key获取set中的差集 * 以第一个为标准 * @param keys * @return */ public Set<String> sdiff(String... keys){ return jedis.sdiff(keys); } /** * 通过key获取set中差集并存入另一set中 * @param dstkey * @param keys * @return */ public Long sdiffstore(String dstkey,String... keys){ return jedis.sdiffstore(dstkey,keys); } /** * 通过key获取set中交集 * @param keys * @return */ public Set<String> sinter(String... keys){ return jedis.sinter(keys); } /** * 通过key获取set中交集并存入另一set中 * @param dstkey * @param keys * @return */ public Long sinterstore(String dstkey,String... keys){ return jedis.sinterstore(dstkey,keys); } /** * 通过key获取set中并集 * @param keys * @return */ public Set<String> sunion(String... keys){ return jedis.sunion(keys); } /** * 通过key获取set中并集并存入另一set中 * @param dstkey * @param keys * @return */ public Long sunionstore(String dstkey,String... keys){ return jedis.sunionstore(dstkey,keys); } /** * 通过key将set中的value移除并把该value值添加到第二个set中 * @param srckey * @param dstkey * @param member * @return */ public Long smove(String srckey,String dstkey,String member){ return jedis.smove(srckey,dstkey,member); } /** * 通过key获取set中value个数 * @param key * @return */ public Long scard(String key){ return jedis.scard(key); } /** * 通过key判断value是否是set中元素 * @param key * @param member * @return */ public Boolean sismember(String key,String member){ return jedis.sismember(key,member); } /** * 通过key随机获取set中的值 * @param key * @return */ public String srandmember(String key){ return jedis.srandmember(key); } /** * 通过key获取set所有元素 * @param key * @return */ public Set<String> smembers(String key){ return jedis.smembers(key); } /** * 通过key的zset中添加value,score,其中score是用来排序的 * 若该value已存在则根据score更新元素 * @param key * @param score * @param member * @return */ public Long zadd(String key,double score,String member){ return jedis.zadd(key,score,member); } /** * 通过key删除在zset中指定的value * @param key * @param member * @return */ public Long zrem(String key,String... member){ return jedis.zrem(key,member); } /** * 通过key增加该value中score值 * @param key * @param score * @param member * @return */ public Double zincrby(String key,double score,String member){ return jedis.zincrby(key,score,member); } /** * 通过key返回zset中的排名 * 下标从小到大排序 * @param key * @param member * @return */ public Long zrank(String key,String member){ return jedis.zrank(key,member); } /** * 通过key返回zset中的排名 * 下标从大道小排序 * @param key * @param member * @return */ public Long zrevrank(String key,String member){ return jedis.zrevrank(key,member); } /** * 通过key获取zset中start到end的value,score从大到小排序 * start为0 end为-1返回全部 * @param key * @param start * @return */ public Set<String> zrevrange(String key,long start,long end){ return jedis.zrevrange(key,start,end); } /** * 通过key获取zset中指定score内的value * @param key * @param max * @return */ public Set<String> zrangeByScore(String key,String max,String min){ return jedis.zrangeByScore(key,max,min); } /** * 通过key获取zset中指定score内的value * @param key * @param max * @return */ public Set<String> zrangeByScore(String key,double max,double min){ return jedis.zrangeByScore(key,max,min); } /** * 通过key获取zset中指定区间内的value数量 * @param key * @param max * @return */ public Long zcount(String key,String max,String min){ return jedis.zcount(key,max,min); } /** * 通过key获取zset中value数量 * @param key * @return */ public Long zcard(String key){ return jedis.zcard(key); } /** * 通过key获取zset中value的score值 * @param key * @param member * @return */ public Double zscore(String key,String member){ return jedis.zscore(key,member); } /** * 通过key删除指定区间的元素 * @param key * @param start * @return */ public Long zremrangeByRank(String key,long start,long end){ return jedis.zremrangeByRank(key,start,end); } /** * 通过key删除指定score的元素 * @param key * @param start * @return */ public Long zremrangeByScore(String key,double start,double end){ return jedis.zremrangeByScore(key,start,end); } /** * 通过key存储是什么类型 * @param key * @return */ public String type(String key){ return jedis.type(key); } /** * 返回满足pattern表达式的所有key * keys("*") 返回所有的key * @param pattern * @return */ public Set<String> keys(String pattern){ return jedis.keys(pattern); } } 导入maven依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>