从来就没有救世主  也不靠神仙皇帝  要创造人类的幸福  全靠我们自己  

Jedis

 

下载地址: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开始
List<String> mget(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,Map<String,String> hash)  //添加多个键值对
//获取
String hget(String key,String field)  //根据filed获取值
List<String> hmget(String key,String... fields)  //获取多个域的值
Map<String,String> hgetAll(String key)//获取key对应的所有键值对值
Set<String> hkeys(String key)  //获取key的所有域
List<String> 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对应的所有键值对值
List<String> lrange(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<String> sort(String key) //list或set的排序

 

  (4)对set的操作

//添加
Long sadd(String key,String... value)  
//获取
Set<String> smembers(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<String> sunion(String... keys)   //并集
Set<String> sinter(String... keys)   //交集
Set<String> 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,Map<Double,String> scoreValue)  //存储此map中数据到set中
//获取
Set<String> zrange(String key,long start,long end)  //获取此zset的 [start,end] 间的元素
Set<String> zrangeByScore(String key,double min,double max) //获取此zset中score在 [min,max] 之间的元素
Set<String> 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();
        }
    }
}

 

posted @ 2020-05-29 11:24  T,X  阅读(145)  评论(0编辑  收藏  举报