Jedis使用API

环境配置

  1. 需要导入jedis.jar
  2. 启动redis服务。
  3. 代码测试连接redis
JedisPool jPool = new JedisPool("localhost",6379);
Jedis jedis = jPool.getResource();
jedis.set("date", "2017-01-19");
jedis.set("work", "coding");
System.out.println(jedis.get("date"));
jPool.destroy();

key的使用


        //当key存在时,才删除。成功为1,失败为0
        jedis.set("age", "23");
        long result = jedis.del("price");
        long result2 = jedis.del("gggg");
        System.out.println("=="+result+"=="+result2);
        //判断key是否存在
        boolean flag = jedis.exists("price");
        System.out.println("是否存在:"+flag);
        //设置过期时间
        //jedis.expire("name", 5); 
        //jedis.expireAt("age", 5); //timestamp
        //返回key值中存储的类型
        System.out.println("age值类型:"+jedis.type("age"));
        System.out.println("name值类型:"+jedis.type("name"));
        //修改key的名称
        System.out.println("修改为:"+jedis.rename("addr", "address"));
        //将key放到给定的db中。
    //  jedis.move(key, dbIndex)
        //查找给定模式的key
        System.out.println(jedis.keys("*"));

String的使用


        //Jedis字符串的API
        jedis.set("age", "24");
        jedis.append("name", " hh");
        System.out.println(jedis.getrange("address", 2, 4));
        System.out.println(jedis.get("name"));
        //当key不存在时,才会设置值
        jedis.setnx("age","hhhh");
        jedis.setnx("from", "henan");
        System.out.println(jedis.get("age"));
        System.out.println(jedis.get("from"));
        //key对应的value的字符长度
        System.out.println("name的字符长度是:"+jedis.strlen("name"));
        //设置多组key/value值
        jedis.mset("value1","hhhh","value2","xxxx","value3","llll");
        //获取多组value值
        List<String> strs = jedis.mget("value1","name","value2");
        System.out.println(strs);
        System.out.println("=============");
        //给key值中存储的数字+1
        jedis.incr("age");
        System.out.println("=="+jedis.get("age"));
        //数字-1
        jedis.decr("age");
        //减去指定的值
        jedis.decrBy("age", 4);
        System.out.println("decrBy:"+jedis.get("age"));
        jedis.set("price", "2.5");
        jedis.incr("name");
        System.out.println("=如果不是int类型就报错="+jedis.get("name"));

List的使用


        //将一个或多个值插入到列表头部
    //  jedis.flushDB();
        jedis.lpush("lkeys", "val1","val2","val1","val1","val2","val3","val4","val5");
        //获取list指定区域的值
        System.out.println(jedis.lrange("lkeys", 0, 20));
        //当key已经存在的时候,设置新值。
        jedis.lset("lkeys", 1, "val000");
        System.out.println(jedis.lrange("lkeys", 1, 4));
        //获取列表长度
        System.out.println("获取列表长度:"+jedis.llen("lkeys"));
        //移除列表元素,删除count个值为value的数据。count=0,删除所有值为value的数据
        System.out.println("移除列表元素:"+jedis.lrem("lkeys", 0, "val1"));
        //对列表进行修剪
        System.out.println("列表修剪结果:"+jedis.ltrim("lkeys", 0, 5));
        //

Hash的使用


        //Jedis的hashAPI
        //hash特别适合用于存储对象
        jedis.hset("person", "name", "lzl");
        jedis.hset("person", "age", "23");
        jedis.hset("person", "address", "河南");
        jedis.hset("person", "birthday", "1993-01-01");
        jedis.hset("person", "price", "2.3");
        //将多个field-value(域-值)设置到hash表中
        Map<String,String> hash = new HashMap<>();
        hash.put("name", "xxx");
        hash.put("age", "33");
        hash.put("address", "北京");
        jedis.hmset("person2", hash);
        //获取key中所有的属性
        System.out.println("person对象对应的属性有:"+jedis.hkeys("person"));
        //获取hash表中字段的数量
        System.out.println("person对象的属性个数:"+jedis.hlen("person"));
        //获取hash表中指定key的所有字段和值
        System.out.println("person对象的属性和值分别是:"+jedis.hgetAll("person"));
        //给hash表中指定字段的整数值加上增量
        System.out.println("整型加上增量的结果:"+jedis.hincrBy("person", "age", 5));
        //获取hash表中的所有值
        System.out.println("hash表中的所有值:"+jedis.hvals("person2"));

Set的使用


        jedis.flushDB();
        //向集合添加一个多多个成员
        jedis.sadd("skeys", "sval1","sval2","sval3","sval4","sval5");
        jedis.sadd("skeys_l", "sval1","sval6","sval7","sval4","sval5");
        //获取集合总数
        System.out.println("获取集合的成员数:"+jedis.scard("skeys"));
        //返回两个或多个集合的差集
        System.out.println("skeys与skeys_l集合的差集:"+jedis.sdiff("skeys","skeys_l"));
        //返回集合差集并存储在diff_keys中
        jedis.sdiffstore("diff_keys", "skeys","skeys_l");
        //返回给定集合的交集
        System.out.println("两个集合的交集:"+jedis.sinter("skeys","skeys_l"));
        //判断元素是否在集合中
        System.out.println("是否在集合中:"+jedis.sismember("skeys", "val2"));
        //将元素从A集合移动到B集合中
        System.out.println("将元素从A集合移动到B集合中:"+jedis.smove("diff_keys", "skeys_l", "sval7"));
        //返回给定集合的并集
        System.out.println("集合的并集:"+jedis.sunionstore("deskeys", "skeys_l","skeys"));

SortSet的使用


        Map<Double,String> membersMap = new HashMap<>();
        membersMap.put(2D, "lzl");
        membersMap.put(3D, "hhh");
        membersMap.put(2D, "lzl");
        membersMap.put(5D, "lzl");
        membersMap.put(3D, "hhh-3");
        membersMap.put(6D, "lzl-6");
        //添加或更新有序集合,有序集合的值不可以重复,但是分数是可以重复的
        jedis.zadd("zkeys", membersMap);
        Map<Double,String> membersMap_1 = new HashMap<>();
        membersMap_1.put(1D, "lzl");
        membersMap_1.put(2D, "hhh");
        membersMap_1.put(3D, "lzl");
        membersMap_1.put(4D, "lzl");
        membersMap_1.put(5D, "hhh-3");
        membersMap_1.put(6D, "lzl-6");
        //添加或更新有序集合,有序集合的值不可以重复,但是分数是可以重复的
        jedis.zadd("zkeys_1", membersMap_1);
        //获取有序集合的成员数
        System.out.println("有序集合的成员数:"+jedis.zcard("zkeys"));
        //指定成员的分数增加一定的增量
        System.out.println("指定成员的分数增加增量:"+jedis.zincrby("zkeys", 4, "lzl"));
        //计算交集,并将结果存储在有序集合中
        System.out.println("计算交集,并将结果存储在有序集合中:"+jedis.zinterstore("deskeys", "zkeys_1","zkeys"));
        //计算有序集合指定区间的分数的成员数
        System.out.println("指定区间的分数成员数量:"+jedis.zcount("zkeys", 0, 5));
        //返回有序集合指定区间的成员
        System.out.println("集合指定区间的成员:"+jedis.zrange("zkeys", 0, 6));
        //返回有序集合指定值的score值
        System.out.println("score值是:"+jedis.zrank("zkeys", "lzl"));
        //移除有序集合中指定元素
        System.out.println("移除元素:"+jedis.zrem("zkeys_1", "lzl"));
        //返回有序集合指定成员的排名
        System.out.println("有序集合排名:"+jedis.zrevrank("zkeys", "hhh"));
        //集合中有序成员的分数值
        System.out.println("有序集合的分数值:"+jedis.zscore("zkeys", "hhh-3"));
        //计算集合并集,并存储到新的key中
        System.out.println("并集:"+jedis.zunionstore("unionKeys", "zkeys","zkeys_1"));

参考网址:http://www.runoob.com/redis/redis-hyperloglog.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章