redis学習ログ【二、redis+jedis】


現在redisはjava言語ベースのクライアント開発パッケージがほぼ3種類あります.
  • Jredis
  • Jedis
  • Redis4J

  • Jedisは公式に唯一提供されているjava言語クライアント開発パッケージであり、最も広く応用されているはずです.
    それでは実戦を始めましょう.

    一、かばんの準備。


    私が使っているのはjedis-2.8.0です.jarパッケージダウンロードアドレス:ここをクリック

    二、実戦


    1.Hello wordはわずかなコードしか必要ありません.
    public static void main(String[] args) {
            //    redis   IP,      6379
            Jedis jedis=new Jedis("127.0.0.1");     
            String key="name";  
            //   
            jedis.del(key);
            //   
            jedis.set(key,"wln");
            //   
            String value=jedis.get(key);
            System.out.println(value);
        }

    jedisの操作は非常に軽便であることがわかる.コンソールでredisを操作する方法にも近似したい.
    2.プール化jedisの使用:commons-poolを使用してプール化の実現を完了する.まずredisを作成します.propertiesプロファイル
    #       
    redis.pool.maxActive=1024
    #     idel      
    redis.pool.maxIdle=200
    #            
    redis.pool.maxWait=1000
    #  borrow Object       
    redis.pool.testOnBorrow=true
    #  return Object       
    redis.pool.testOnReturn=true
    #IP
    redis.ip=127.0.0.1
    #port
    redis.port=6379

    プロファイルが1回のみ読み込まれることを、単一のモデルで確認します.
    public class MyProperties extends Properties{
        private static MyProperties mp;
    
        private MyProperties(){
            try {
                this.load(MyProperties.class.getClassLoader().getResourceAsStream("redis.properties"));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        public static MyProperties getInstance() {
            if(mp==null){
                mp=new MyProperties();
            }
            return mp;
        }
    }

    静的ブロックでの初期化の完了
    private static JedisPool pool; 
        static {  
            JedisPoolConfig config = new JedisPoolConfig(); 
            //        
           config.setMaxTotal(Integer.valueOf(MyProperties.getInstance()  
                    .getProperty("redis.pool.maxActive"))); 
            //     idel      
            config.setMaxIdle(Integer.valueOf(MyProperties.getInstance()    
                   .getProperty("redis.pool.maxIdle"))); 
            //            
            config.setMaxWaitMillis(Long.valueOf(MyProperties.getInstance()
               .getProperty("redis.pool.maxWait"))); 
            //  borrow Object       
            config.setTestOnBorrow(Boolean.valueOf(MyProperties.getInstance()  
                .getProperty("redis.pool.testOnBorrow"))); 
            //  return Object       
            config.setTestOnReturn(Boolean.valueOf(MyProperties.getInstance()  
                .getProperty("redis.pool.testOnReturn"))); 
            pool = new JedisPool(config, MyProperties.getInstance().getProperty("redis.ip"),Integer.valueOf(MyProperties.getInstance().getProperty("redis.port"))); 
        }  

    上のコードを変更
    public static void main(String[] args) {
            //       
            Jedis jedis=pool.getResource();
            String key="name";
            //   
            jedis.del(key);
            //   
            jedis.set(key,"wrm");
            //   
            String value=jedis.get(key);
            System.out.println(value);
            //       
            pool.returnResource(jedis);
        }

    3.クラスタredisはMaster-Slaveに基づいているので、redisをクラスタ化するにはMaster-Slaveを複数セット作成し、クライアントツールを介してコンシステンシハッシュを完了することにほかならない
    redisでpropertiesに新しいipを追加
    redis.ip1=192.168.15.212

    前のstaticブロックで2つのJedisShardInfoをリストにインスタンス化
    edisShardInfo jedis1 = new JedisShardInfo( MyProperties.getInstance().getProperty("redis.ip"),  
                    Integer.valueOf(MyProperties.getInstance().getProperty("redis.port"))); 
            JedisShardInfo jedis2 = new JedisShardInfo(MyProperties.getInstance().getProperty("redis.ip"),  
                    Integer.valueOf(MyProperties.getInstance().getProperty("redis.port"))); 
            List<JedisShardInfo> list = new LinkedList<JedisShardInfo>(); 
            list.add(jedis1); 
            list.add(jedis2); 

    JedisPoolの代わりにShardedJeddisPoolを初期化:
    ShardedJedisPool pool = new ShardedJedisPool(config, list);  

    ShardedJeddisに変更し、Jeddisオブジェクトを取得します.
    ShardedJedis jedis=pool.getResource();

    以上の実践により,基本的なjedis操作は既に使用可能である.次に、フレームワークの統合について説明します.