1. 程式人生 > >Java中如何使用Redis做快取

Java中如何使用Redis做快取

private void StringOperate() 
    {  
        System.out.println("======================String_1=========================="); 
        // 清空資料 
        System.out.println("清空庫中所有資料:"+jedis.flushDB());
        
        System.out.println("=============增=============");
        jedis.set("key001","value001");
        jedis.set("key002","value002");
        jedis.set("key003","value003");
        System.out.println("已新增的3個鍵值對如下:");
        System.out.println(jedis.get("key001"));
        System.out.println(jedis.get("key002"));
        System.out.println(jedis.get("key003"));
        
        System.out.println("=============刪=============");  
        System.out.println("刪除key003鍵值對:"+jedis.del("key003"));  
        System.out.println("獲取key003鍵對應的值:"+jedis.get("key003"));
        
        System.out.println("=============改=============");
        //1、直接覆蓋原來的資料
        System.out.println("直接覆蓋key001原來的資料:"+jedis.set("key001","value001-update"));
        System.out.println("獲取key001對應的新值:"+jedis.get("key001"));
        //2、直接覆蓋原來的資料  
        System.out.println("在key002原來值後面追加:"+jedis.append("key002","+appendString"));
        System.out.println("獲取key002對應的新值"+jedis.get("key002")); 
   
        System.out.println("=============增,刪,查(多個)=============");
        /** 
         * mset,mget同時新增,修改,查詢多個鍵值對 
         * 等價於:
         * jedis.set("name","ssss"); 
         * jedis.set("jarorwar","xxxx"); 
         */  
        System.out.println("一次性新增key201,key202,key203,key204及其對應值:"+jedis.mset("key201","value201",
                        "key202","value202","key203","value203","key204","value204"));  
        System.out.println("一次性獲取key201,key202,key203,key204各自對應的值:"+
                        jedis.mget("key201","key202","key203","key204"));
        System.out.println("一次性刪除key201,key202:"+jedis.del(new String[]{"key201", "key202"}));
        System.out.println("一次性獲取key201,key202,key203,key204各自對應的值:"+
                jedis.mget("key201","key202","key203","key204")); 
        System.out.println();
                
            
        //jedis具備的功能shardedJedis中也可直接使用,下面測試一些前面沒用過的方法
        System.out.println("======================String_2=========================="); 
        // 清空資料 
        System.out.println("清空庫中所有資料:"+jedis.flushDB());       
       
        System.out.println("=============新增鍵值對時防止覆蓋原先值=============");
        System.out.println("原先key301不存在時,新增key301:"+shardedJedis.setnx("key301", "value301"));
        System.out.println("原先key302不存在時,新增key302:"+shardedJedis.setnx("key302", "value302"));
        System.out.println("當key302存在時,嘗試新增key302:"+shardedJedis.setnx("key302", "value302_new"));
        System.out.println("獲取key301對應的值:"+shardedJedis.get("key301"));
        System.out.println("獲取key302對應的值:"+shardedJedis.get("key302"));
        
        System.out.println("=============超過有效期鍵值對被刪除=============");
        // 設定key的有效期,並存儲資料 
        System.out.println("新增key303,並指定過期時間為2秒"+shardedJedis.setex("key303", 2, "key303-2second")); 
        System.out.println("獲取key303對應的值:"+shardedJedis.get("key303")); 
        try{ 
            Thread.sleep(3000); 
        } 
        catch (InterruptedException e){ 
        } 
        System.out.println("3秒之後,獲取key303對應的值:"+shardedJedis.get("key303")); 
        
        System.out.println("=============獲取原值,更新為新值一步完成=============");
        System.out.println("key302原值:"+shardedJedis.getSet("key302", "value302-after-getset"));
        System.out.println("key302新值:"+shardedJedis.get("key302"));
        
        System.out.println("=============獲取子串=============");
        System.out.println("獲取key302對應值中的子串:"+shardedJedis.getrange("key302", 5, 7));         
    } 
複製程式碼複製程式碼