亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Redis客戶端使用

系統 2758 0

http://wenku.baidu.com/view/6ccd650af12d2af90242e63d.html

一、下載jedis 代碼

jedis 代碼地址: https://github.com/xetorthio/jedis

再次感受到開源的強大。呵呵,大家有時間可以看看源碼。

二、項目中如何使用Jedis使用

現在大家都喜歡用maven作為項目管理利器,那我只說明一下Maven如何使用jedis,只需要添加以下依賴就可以。

      
        <
      
      
        dependency
      
      
        >
      
      
        <
      
      
        groupId
      
      
        >
      
      redis.clients
      
        </
      
      
        groupId
      
      
        >
      
      
        <
      
      
        artifactId
      
      
        >
      
      jedis
      
        </
      
      
        artifactId
      
      
        >
      
      
        <
      
      
        version
      
      
        >
      
      2.1.0
      
        </
      
      
        version
      
      
        >
      
      
        </
      
      
        dependency
      
      
        >
      
    

?

OK, 用maven管理jar包依賴真的很方便。建議大家都采用maven管理項目。

三、建立一個簡單的連接

?

      
        public
      
      
        class
      
       JedisUtil {



    
      
        public
      
      
        static
      
       Jedis createJedis() {

        Jedis jedis = 
      
        new
      
       Jedis(
      
        "127.0.0.1"
      
      );

        
      
        return
      
       jedis;

    }



    
      
        public
      
      
        static
      
       Jedis createJedis(String host, 
      
        int
      
       port) {

        Jedis jedis = 
      
        new
      
       Jedis(host, port);



        
      
        return
      
       jedis;

    }



    
      
        public
      
      
        static
      
       Jedis createJedis(String host, 
      
        int
      
       port, String passwrod) {

        Jedis jedis = 
      
        new
      
       Jedis(host, port);



        
      
        if
      
       (!StringUtils.isNotBlank(passwrod))

            jedis.auth(passwrod);

        

        
      
        return
      
       jedis;

    }

}
    
      ?
    
      
        創建一個簡單Jedis對象就是這樣,告訴它的IP地址和端口號就可以,如果redis有密碼,那需要在建立連接時,需要調用auth方法設置密碼。
      
    
      
        當然,簡單連接不適合真實的環境使用,需要有連接池支持 。
      
    
      ?
    

四、建立Jedis連接池

?

創建連接jedis 連接池,jedis 提供JedisPool對象,使用比較方便。jedis pool 是基于apache common pool 實現。

      package cn.opensv.example.redis;



import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.JedisPoolConfig;




      
        public
      
      
        class
      
       JedisPoolUtils {



    
      
        private
      
      
        static
      
       JedisPool pool;



    
      
        /**
      
      
             * 建立連接池 真實環境,一般把配置參數缺抽取出來。
      
      
             * 
      
      
             */
      
      
        private
      
      
        static
      
      
        void
      
       createJedisPool() {



        
      
        // 建立連接池配置參數
      
      

        JedisPoolConfig config = 
      
        new
      
       JedisPoolConfig();



        
      
        // 設置最大連接數
      
      

        config.setMaxActive(100);



        
      
        // 設置最大阻塞時間,記住是毫秒數milliseconds
      
      

        config.setMaxWait(1000);



        
      
        // 設置空間連接
      
      

        config.setMaxIdle(10);



        
      
        // 創建連接池
      
      

        pool = 
      
        new
      
       JedisPool(config, 
      
        "127.0.0.1"
      
      , 6379);



    }



    
      
        /**
      
      
             * 在多線程環境同步初始化
      
      
             */
      
      
        private
      
      
        static
      
       synchronized 
      
        void
      
       poolInit() {

        
      
        if
      
       (pool == 
      
        null
      
      )

            createJedisPool();

    }



    
      
        /**
      
      
             * 獲取一個jedis 對象
      
      
             * 
      
      
             * @return
      
      
             */
      
      
        public
      
      
        static
      
       Jedis getJedis() {



        
      
        if
      
       (pool == 
      
        null
      
      )

            poolInit();

        
      
        return
      
       pool.getResource();

    }



    
      
        /**
      
      
             * 歸還一個連接
      
      
             * 
      
      
             * @param jedis
      
      
             */
      
      
        public
      
      
        static
      
      
        void
      
       returnRes(Jedis jedis) {

        pool.returnResource(jedis);

    }



}


    

五、Jedis 實現分片

Jedis分片采用Hash算法和基于的Key模式匹配。Jedis定義一個Hash接口,如果覺得自帶的不爽,可以自己實現一個Hash算法。Jedis自帶的Hash的算法是MurmurHash 2.0 。

MurmurHash算法:高運算性能,低碰撞率,由Austin Appleby創建于2008年,現已應用到Hadoop、libstdc++、nginx、libmemcached等開源系統。2011年 Appleby被Google雇傭,隨后Google推出其變種的CityHash算法。

官方網站: https://sites.google.com/site/murmurhash/

MurmurHash算法,自稱超級快的hash算法,是FNV的4-5倍。

?

      
        /**
      
      
             * 創建分片對象
      
      
             * @return
      
      
             */
      
      
        public
      
      
        static
      
       ShardedJedis createShardJedis() {

        

        
      
        //建立服務器列表
      
      

        List<JedisShardInfo> shards = 
      
        new
      
       ArrayList<JedisShardInfo>();

        

        
      
        //添加第一臺服務器信息
      
      

        JedisShardInfo si = 
      
        new
      
       JedisShardInfo(
      
        "localhost"
      
      , 6379);

        si.setPassword(
      
        "123"
      
      );

        shards.add(si);

        

        
      
        //添加第二臺服務器信息
      
      

        si = 
      
        new
      
       JedisShardInfo(
      
        "localhost"
      
      , 6399);

        si.setPassword(
      
        "123"
      
      );

        shards.add(si);

        
      
        //建立分片連接對象
      
      

        ShardedJedis jedis = 
      
        new
      
       ShardedJedis(shards);        

        

        
      
        //建立分片連接對象,并指定Hash算法
      
      
        //ShardedJedis jedis = new ShardedJedis(shards,selfHash);
      
      
        return
      
       jedis;

    }
    

分片也可以支持連接池,具體如下:

      
        private
      
      
        static
      
      
        void
      
       createPool() {

        List<JedisShardInfo> shards = 
      
        new
      
       ArrayList<JedisShardInfo>();

        JedisShardInfo si = 
      
        new
      
       JedisShardInfo(
      
        "localhost"
      
      , 6379);

        si.setPassword(
      
        "123"
      
      );

        shards.add(si);

        si = 
      
        new
      
       JedisShardInfo(
      
        "localhost"
      
      , 6399);

        si.setPassword(
      
        "123"
      
      );

        shards.add(si);

        pool = 
      
        new
      
       ShardedJedisPool(
      
        new
      
       JedisPoolConfig(), shards);

    }
    

其它與普通的連接池沒有區別。

除Jedis是redis的Java客戶端實現,還有其他的一些開源庫,如:Spring Redis Data ,不過功能還不夠強大。

Redis客戶端使用


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 夜夜夜夜夜夜夜猛噜噜噜噜噜噜 | 亚洲成人免费看 | 97久久免费视频 | 五月天婷婷在线观看高清 | 久久久久久人精品免费费看 | 床上毛片| 免费观看成人久久网免费观看 | 成人a视频高清在线观看 | 国产精品香蕉在线观看不卡 | 国产91在线播放边 | 亚洲欧洲日本精品 | 四虎影| 99热这 | 中文字幕亚洲精品日韩精品 | 一区二区三区四区日韩 | 国产第二区| 欧美成人a级在线视频 | 毛片免费在线视频 | 欧美jizz19性欧美 | 亚洲免费成人网 | 久久成人综合 | 国产九九在线观看播放 | 四虎精品影院4hutv四虎 | 高清中文字幕视频在线播 | 日韩精品久久久毛片一区二区 | 国内精品久久久久久久亚洲 | 天天透天天插 | 国内精品一区视频在线播放 | 色综合激情 | 人人鲁免费播放视频人人香蕉 | 久久久网 | 99久久免费国产精精品 | 久久99国产精品免费观看 | 亚洲精品视 | 中国一级特黄aa毛片大片 | 久久中精品中文 | 久久99热精品免费观看k影院 | 99久久精品免费看国产四区 | 99国产精品久久久久久久成人热 | 成人欧美一区二区三区视频不卡 | 亚洲精品久久婷婷爱久久婷婷 |