JAVA - Redis的連接


java連接linux Redis遇到的問題

   昨天在Linux搭建了Redis服務,今天使用java連接測試了一下。要想使用java連接redis服務,就離不開jedis-2.6.1.jar。使用jedis連接redis十分方便。下面我們測試一下是否連接上redis服務:

package com . coinvs . redis . util;
import redis.clients.jedis.Jedis;
//import redis.clients.jedis.Jedis;
public class RadisDemo {
      public static void main( String [] args) {
     //連接本地的 Redis 服務
     Jedis jedis = new Jedis( "192.168.1.66" , 6379);
     System . out . println( "Connection to server sucessfully");
     //查看服務是否運行
     System . out . println( "Server is running: " + jedis . ping());
    }
}
 
         

如果出現下圖,這說明沒有連接成功,不過不用擔心,這很好解決。

連接redis失敗


出現這種錯誤的原因有以下幾種:

  1. redis服務沒有開啟;
  2. 沒有正確輸入,ip、端口;
  3. Linux系統防火牆沒有關閉;
  4. 防火牆關閉了,但是訪問者ip,在redis.conf文件的bind之外。

簡單設置一下,應該就可以連接上了!

下面我們簡單說一下,jedis API的使用:

  1.redis存儲字符串
//   @Test
    public void testString() {
        //-----添加數據----------
        jedis . set( "name" , "往往"); //向key-->name中放入了value--xinxin
        System . out . println( jedis . get( "name")); //執行結果:xinxin
        jedis . append( "name" , " is my lover"); //拼接
        System . out . println( jedis . get( "name"));
        jedis . del( "name");   //刪除某個鍵
        System . out . println( jedis . get( "name"));
        //設置多個鍵值對
        jedis . mset( "name" , "liuling" , "age" , "23" , "qq" , "476777XXX");
        System . out . println( jedis . get( "age"));
        jedis . incr( "age"); //進行加1操作
        System . out . println( jedis . get( "age"));
        System . out . println( jedis . get( "name") + "-" + jedis . get( "age") + "-" + jedis . get( "qq"));
    }
 
         
  2.redis操作Map
//    @Test
    public void testMap() {
        //-----添加數據----------
        Map < String , String > map = new HashMap < String , String >();
        map . put( "name" , "xinxin");
        map . put( "age" , "22");
        map . put( "qq" , "123456");
        jedis . hmset( "user" , map);
        //取出user中的name,執行結果:[minxr]-->注意結果是一個泛型的List
        //第一個參數是存入redis中map對象的key,后面跟的是放入map中的對象的key,后面的key可以跟多個,是可變參數
        List < String > rsmap = jedis . hmget( "user" , "name" , "age" , "qq");
        System . out . println( rsmap);
        //刪除map中的某個鍵值
        jedis . hdel( "user" , "age");
        System . out . println( jedis . hmget( "user" , "age")); //因為刪除了,所以返回的是null
        System . out . println( jedis . hlen( "user")); //返回key為user的鍵中存放的值的個數2
        System . out . println( jedis . exists( "user")); //是否存在key為user的記錄 返回true
        System . out . println( jedis . hkeys( "user")); //返回map對象中的所有key
        System . out . println( jedis . hvals( "user")); //返回map對象中的所有value
        Iterator < String > iter = jedis . hkeys( "user" ). iterator();
        while ( iter . hasNext ()){
            String key = iter . next();
            System . out . println( key + ":" + jedis . hmget( "user" , key));
        }
    }
  3.jedis操作List
//    @Test
    public void testList (){
        //開始前,先移除所有的內容
        jedis . del( "java framework");
        System . out . println( jedis . lrange( "java framework" , 0 ,- 1));
        //先向key java framework中存放三條數據
        jedis . lpush( "java framework" , "spring");
        jedis . lpush( "java framework" , "struts");
        jedis . lpush( "java framework" , "hibernate");
        //再取出所有數據jedis.lrange是按范圍取出,
        // 第一個是key,第二個是起始位置,第三個是結束位置,jedis.llen獲取長度 -1表示取得所有
        System . out . println( jedis . lrange( "java framework" , 0 ,- 1));
        jedis . del( "java framework");
        jedis . rpush( "java framework" , "spring");
        jedis . rpush( "java framework" , "struts");
        jedis . rpush( "java framework" , "hibernate");
        System . out . println( jedis . lrange( "java framework" , 0 ,- 1));
    }
 
         
  4. jedis操作Set
//    @Test
    public void testSet (){
        jedis . del( "user");
        //添加
        jedis . sadd( "user" , "liuling");
        jedis . sadd( "user" , "xinxin");
        jedis . sadd( "user" , "ling");
        jedis . sadd( "user" , "zhangxinxin");
        jedis . sadd( "user" , "who");
        //移除noname
        jedis . srem( "user" , "who");
        System . out . println( jedis . smembers( "user")); //獲取所有加入的value
        System . out . println( jedis . sismember( "user" , "xinxin")); //判斷 who 是否是user集合的元素
        System . out . println( jedis . srandmember( "user")); //隨機返回一個user中元素的value
        System . out . println( jedis . scard( "user")); //返回集合的元素個數
    } 

5.jedis 排序

@Test
    public void test() throws InterruptedException {
        //
        //注意,此處的rpush和lpush是List的操作。是一個雙向鏈表(但從表現來看的)
        jedis . del( "a"); //先清除數據,再加入數據進行測試
        jedis . rpush( "a" , "1");
        jedis . lpush( "a" , "6");
        jedis . lpush( "a" , "3");
        jedis . lpush( "a" , "9");
        System . out . println( jedis . lrange( "a" , 0 ,- 1)); // [9, 3, 6, 1]
        System . out . println( jedis . sort( "a")); //[1, 3, 6, 9]  //輸入排序后結果
        System . out . println( jedis . lrange( "a" , 0 ,- 1));
    }
 
簡單的學習一下jedis的API,后續還會補充!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM