日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Redis客戶端使用

系統(tǒng) 3226 0

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

一、下載jedis 代碼

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

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

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

現(xiàn)在大家都喜歡用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;

    }

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

四、建立Jedis連接池

?

創(chuàng)建連接jedis 連接池,jedis 提供JedisPool對象,使用比較方便。jedis pool 是基于apache common pool 實現(xiàn)。

      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;



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



        
      
        // 建立連接池配置參數(shù)
      
      

        JedisPoolConfig config = 
      
        new
      
       JedisPoolConfig();



        
      
        // 設(shè)置最大連接數(shù)
      
      

        config.setMaxActive(100);



        
      
        // 設(shè)置最大阻塞時間,記住是毫秒數(shù)milliseconds
      
      

        config.setMaxWait(1000);



        
      
        // 設(shè)置空間連接
      
      

        config.setMaxIdle(10);



        
      
        // 創(chuàng)建連接池
      
      

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



    }



    
      
        /**
      
      
             * 在多線程環(huán)境同步初始化
      
      
             */
      
      
        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 實現(xiàn)分片

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

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

官方網(wǎng)站: https://sites.google.com/site/murmurhash/

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

?

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

        

        
      
        //建立服務(wù)器列表
      
      

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

        

        
      
        //添加第一臺服務(wù)器信息
      
      

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

        si.setPassword(
      
        "123"
      
      );

        shards.add(si);

        

        
      
        //添加第二臺服務(wù)器信息
      
      

        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);

    }
    

其它與普通的連接池沒有區(qū)別。

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

Redis客戶端使用


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 镇远县| 四子王旗| 灵武市| 怀远县| 大同县| 商河县| 科技| 密云县| 响水县| 乌恰县| 独山县| 青阳县| 赞皇县| 聊城市| 临洮县| 东平县| 遵义市| 开化县| 冕宁县| 微山县| 棋牌| 黄浦区| 长沙县| 昭通市| 澎湖县| 广丰县| 资中县| 汶川县| 崇阳县| 中牟县| 乐陵市| 鄱阳县| 报价| 永年县| 九龙县| 宝山区| 师宗县| 长垣县| 牟定县| 砀山县| 格尔木市|