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

Redis客戶端使用

系統(tǒng) 2929 0

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

一、下載jedis 代碼

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

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

二、項目中如何使用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算法:高運(yùn)算性能,低碰撞率,由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 ,不過功能還不夠強(qiáng)大。

Redis客戶端使用


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 北京市| 新乐市| 岫岩| 玛纳斯县| 溆浦县| 邻水| 米林县| 双峰县| 汝南县| 临颍县| 阿克陶县| 微博| 元阳县| 东乡县| 海宁市| 开鲁县| 神木县| 郁南县| 济阳县| 乐都县| 南郑县| 集贤县| 深水埗区| 长兴县| 扶绥县| 马龙县| 忻州市| 通许县| 饶平县| 阿拉尔市| 舒兰市| 台安县| 淮南市| 衡阳县| 永川市| 丹棱县| 禹城市| 宜都市| 静安区| 深州市| 临沧市|