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

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