Jedis 操作數據

 private static JedisPool pool = null;
//測試String類型
    @Test
    public void testString(){
//jedispool爲空的時候初始化
        JedisPoolConfig config = new JedisPoolConfig();
        //控制一個pool可分配多個jedis實例,通過pool.getResource()來獲取

        //如果賦值爲-1,則表示不限制,如果pool已經分配了maxTotal個jedis實例,則此時pool的狀態爲exhausted(耗盡)
        config.setMaxTotal(600);
        //控制一個pool最多有多少個狀態爲idle(空閒)的jedis實例
        config.setMaxIdle(300);
        //設置最小空閒連接數
        config.setMinIdle(1);
        //設置最大等待時間
        config.setMaxWaitMillis(3000);
        //表示當borrow(引入)一個jedis實例時,最大的等待時間,如果超過等待時間,則直接拋出JedisConnectionExceptior
        config.setMaxWaitMillis(3000);
        //在borrow一個jedis實例時,是否提前進行validate操作;如果爲true,則得到的jedis實例均是可用的;
        config.setTestOnBorrow(true);
        //連接的最小空閒時間 默認1800000毫秒(30分鐘)
        config.setMinEvictableIdleTimeMillis(300000);
        //每次釋放連接的最大數目,默認3
        config.setNumTestsPerEvictionRun(1024);
        //逐出掃描的時間間隔(毫秒) 如果爲負數,則不運行逐出線程, 默認-1
        config.setTimeBetweenEvictionRunsMillis(30000);
        //#是否在從池中取出連接前進行檢驗,如果檢驗失敗,則從池中去除連接並嘗試取出另一
        config.setTestOnBorrow(true);
        //返回性校驗
        config.setTestOnReturn(true);
        //空閒時檢查
        config.setTestWhileIdle(true);
        //設置後進先出
        config.setLifo(true);
        pool = new JedisPool(config, "host",  6379, 10000, "auth");
        Jedis jedis = pool.getResource();
        jedis.select(1);
        //設定該Key持有指定的字符串Value,如果該Key已經存在,則覆蓋其原有值。返回值總是返回"OK"
        String returnset = jedis.set("mykey", "hello");
        //根據鍵獲取值
        String mykeyValue = jedis.get("mykey");
        
        //追加  如果key存在,則在原來的key的value後面追加;否則效果相當於set
        Long result = jedis.append("mykey7", "我是後面追加的7");
        
        //判斷該鍵是否存在,存在返回true,否則返回false。
        Boolean result5 = jedis.exists("mykey");
        
        //取指定Key的字符長度,等效於C庫中strlen函數。
        Long result6 = jedis.strlen("mykey");
        
        //=================================
        //設置Key的值爲20
        jedis.set("mykey2", "20");
        //該Key的值遞增1
        Long result1 = jedis.incr("mykey2");
        
        //該key的值遞減1
        Long result2 = jedis.decr("mykey2");
        
        //刪除已有鍵,刪除成功返回1,該鍵不存在的話就返回0.
        Long result3 = jedis.del("mykey");
        
        //從第六個開始替換2個字符(dd只有2個字符),從0開始計數,如果長度不夠,就用空格空字符替代
        jedis.setrange("mykey", 6, "dd");//"hello dd"
        
        //截取該鍵的Value,從第一個字符開始,到第二個字符結束。它是從0開始計數的
        String returngetRange = jedis.getrange("mykey", 1, 2);//el
        //20已經超過Value的總長度,因此將截取第一個字節後面的所有字節。
        String returngetRange2 = jedis.getrange("mykey", 1, 20);//ello
        
        //批量設置了key1和key2兩個鍵。返回值表示是否執行成功,執行成功返回1.
        Long returnmsetnxValue = jedis.msetnx("key1","key1Value","key2","key2Value");
        
        //批量獲取了key1和key2兩個鍵的值。
        List<String> mget = jedis.mget("key1","key2");
        for(String value:mget){
            System.out.print(value+"  ");
        }
        //打印結果爲:key1Value  key2Value
        
        //批量設置了key3和key5兩個鍵,但是key3已經存在,所以該命令執行失敗並返回0。
        Long returnmsetnxValue1 = jedis.msetnx("key2","key2Value","key3","key3Value");
        
        //批量獲取key2和key3,由於key3沒有設置成功,所以返回nil。
        List<String> mget1 = jedis.mget("key2","key3");
        for(String value:mget1){
            System.out.print(value+"  ");
        }
        //打印結果依次爲 key2Value null,因爲key3沒有設置成功,所以取出來的值爲null
        
        
        //該命令原子性的完成參數中所有key/value的設置操作,其具體行爲可以看成是多次迭代執行SET命令。     該命令不會失敗,始終返回OK。  
        String mset = jedis.mset("key2","key2newValue","key3","key3Value");
        
        //設置從0開始計算的第七位BIT值爲1,返回原有BIT值0.這裏用1代表true,用0代表false。
        //Boolean setbit = jedis.setbit("mybitkey", 7, true);
        String result4 = mykeyValue;
        
        //返回了指定Offset的BIT值。以true代表1,false代表0
        Boolean getbitsixresult = jedis.getbit("mybitkey", 7);
        
        jedis.close();
    }

參考補充:https://www.cnblogs.com/lixianyuan-org/p/9480602.html

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