下载地址:https://mvnrepository.com/artifact/org.apache.commons/c
API:https://tool.oschina.net/uploads/apidocs/jedis-2.1.0/
1. 导入配置
将 jedis-version.jar导入
将连接池的jar common-poolversion.jar 导入
2. 相关的类
2.1 Jedis
构造:
Jedis(JedisShardInfo shardInfo) Jedis(String host) Jedis(String host,int port) Jedis(String host,int port,int timeout)
方法:
通用的操作:
(1)对string的操作:
//增加数据 String set(String key,String value) //增加/覆盖数据 Long setnx(String key,String value) //不覆盖增加 String setex(String key,int seconds,String value) //增加并设置有效时间 Long append(String key,String s) //在key对于的value后扩展字符串s String mset(String k1,String v1,String k2,String v2) //增加多个数据 //获取数据 String getSet(String key,String value) //更新此key的值为value,并返回原来的值 String get(String key) String getrange(String key,long start,long end) //获取key的值的 [start,end] 间的字符,下标从0开始 Listmget(String.. keys) //获取多个 //删除数据 Long del(String.. keys) //删除
(2)对hash的操作
//添加 Long hset(String key,String field,String value) Long hsetnx(String key,String field,String value) //如果field不存在则设置 String hmset(String key,Maphash) //添加多个键值对 //获取 String hget(String key,String field) //根据filed获取值 List hmget(String key,String... fields) //获取多个域的值 Map hgetAll(String key)//获取key对应的所有键值对值 Set hkeys(String key) //获取key的所有域 List hvals(String key) //获取key的所有域的所有值 Long hlen(String key) //key对于的键值对的个数 //删除 Long hdel(String key,String.. fields) //检测 Boolean hexists(String key,String field) //测试field域是否存在 //修改 Long hincrBy(String key,String field,long value) //field域的值加上value
(3)对list的操作
//添加 Long lpush(String key,String... value) Long rpush(String key,String... value) //获取key对应的所有键值对值 Listlrange(String key,int start,int end) //获取[start,end] 间的元素 String lindex(String key,long index) //获取list下标为index的元素 Long llen(String key) //获取list的长度 //删除 Long lrem(String key,long count,String value) ①count为0 从key对应的lsit中删除所有值为value的元素 ②count>0 删除前count个值为value的元素 ③count<0 删除后count个值为value的元素 String ltrim(String key,long start,long end) //删除[start,end]区间之外的元素 String lpop() //从list头弹出一个元素 String rpop() //从list尾弹出一个元素 //修改 String lset(String key,long index,String value) //将下标为index的元素值修改为value //排序 List sort(String key) //list或set的排序
(4)对set的操作
//添加 Long sadd(String key,String... value) //获取 Setsmembers(String key) //返回set中所有元素 Long scard(String key) //返回set中元素个数 //删除 Long srem(String key,String... values) //删除值value的元素 String spop(String key) //随机弹出set里的一个元素 Long smove(String key1,String key2,String value) //将key1的set中值为value的元素移出到key2的set中 //交、并、差集 Set sunion(String... keys) //并集 Set sinter(String... keys) //交集 Set sdiff(String key1,String... keys) //key1的set减去其它key的set中的元素
(5)对sorted-set的操作
//添加 Long zadd(String key,double score,String value) //根据score存储一个value到此set中 Long zadd(String key,MapscoreValue) //存储此map中数据到set中 //获取 Set zrange(String key,long start,long end) //获取此zset的 [start,end] 间的元素 Set zrangeByScore(String key,double min,double max) //获取此zset中score在 [min,max] 之间的元素 Set zrangeByScore(String key,double min,double max,int off,int count) // Double zscore(String key,String value) //获取值为value的元素的score Long zrank(String key,String value) //获取值为value的元素的score的index Long zcard(String key) //元素个数 Long zcount(String key,double min,double max) //获取score在[min,max]间的元素的个数 //删除值value的元素 Long zrem(String key,String... values) //删除值为value的元素 //修改 Double zincrby(String key,double addscore,String value) //值为value的元素的score加addscore,并调整其位置
2.2 排序
SortingParams类
3. 连接池
3.1 JedisPool类
使用步骤:
(1)创建JedisPool连接池对象
构造:
JedisPool(org.apache.commons.pool.impl.GenericObjectPool.Config poolConfig, String host) //其它类似
(2)方法获取连接
获取jedis连接的方法:
Jedis getResource()
3.2 配置类对象:JedisPoolConfig
可设置最大连接数、ip、端口等参数
例:
JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(50); //最大连接数 config.setMaxIdle(10); //最大空闲连接 //1.连接池对象 JedisPool jedisPool = new JedisPool(config,"127.0.0.1"); //2.获取一个Jedis连接 Jedis jedis = jedisPool.getResource(); jedis.sadd("key1","1"); System.out.println(jedis.smembers("key1")); //3.关闭 jedis.close(); jedisPool.close();
4. 工具类
package commonUtils; import redis.clients.jedis.*; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class JedisPoolUtils { private static JedisPool jedisPool; static { //读取配置文件 InputStream resourceAsStream = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties"); //创建Properties对象 Properties pro = new Properties(); //关联配置文件 try { pro.load(resourceAsStream); } catch (IOException e) { e.printStackTrace(); } //创建连接池配置对象 JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle"))); jedisPoolConfig.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal"))); //初始化连接池对象 jedisPool = new JedisPool(jedisPoolConfig,pro.getProperty("host")); if(resourceAsStream != null) { try { resourceAsStream.close(); } catch (IOException e) { e.printStackTrace(); } } } //获取一个Jedis连接 public static Jedis getJedis(){ return jedisPool.getResource(); } //关闭一个Jedis连接(返回一个连接到池) public static void close(Jedis jedis) { if(jedis != null) { jedis.close(); } } }