RedisコマンドのJavaAPI Jedisの操作

20779 ワード

本文は主にIDEAの上でJedisの中でRedisの5種類の異なるデータ構造の具体的な操作について説明して、もし完全なコードの構成が必要ならば、githubの上で関連するコードをダウンロードすることができます.https://github.com/carson0408/JredisDemo.git

1.pomを構成する.xml


どのようにMavenプロジェクトを構築するかについては、前のブログで詳しく述べたが、ここでは述べない.Jedisは必要なJarバッグを直接話します.


    4.0.0

    com.carson
    JredisTest
    1.0-SNAPSHOT
    
        
            redis.clients
            jedis
            2.9.0
        
        
            commons-pool
            commons-pool
            20030825.183949
        
        
            junit
            junit
            4.12
        

        
            org.apache.logging.log4j
            log4j-core
            2.10.0
        
        
            log4j
            log4j
            1.2.17
        
    




2.Stringの操作

import redis.clients.jedis.BitOP;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;

import java.util.logging.Logger;

public class StringDemo {
    /**
     *    redis   
     * @return
     */
    public static Jedis getJedis(){
        JedisShardInfo info = new JedisShardInfo("127.0.0.1", 6379);
        Jedis jedis = new Jedis(info);
        return jedis;
    }
    public static void testString(Jedis jedis){
        // set、get、incr、decr     ,  String     key String  ,  value      、      
        try {
            jedis.set("name", "carson");
            jedis.set("age", "25");
            jedis.set("money", "26.5");
            jedis.incr("age");
            jedis.incrBy("age", 10);
            String age = jedis.get("age");
            String name = jedis.get("name");
            System.out.println(name + ":" + age);
            System.out.println("age:" + jedis.decrBy("age", 5));
        }catch(Exception e){
            e.printStackTrace();
        }
       // System.out.println(jedis.incrByFloat("money",3.5));

        //setnx key_name value:  ,    key_name,      ,    。
        try {
            jedis.setnx("money", "31");
            System.out.println("       money:" + jedis.get("money"));
        }catch(Exception e){
            e.printStackTrace();
        }


        //append     
        try {
            jedis.append("name", " Jack");
            System.out.println("append     name :" + jedis.get("name"));
        }catch(Exception e){
            e.printStackTrace();
        }

        //getrange、setrange   
        try {
            System.out.println("       :"+jedis.getrange("name", 0, 3));
            jedis.setrange("name", 5, "abc");
            System.out.println("     name :" + jedis.get("name"));
        }catch(Exception e){
            e.printStackTrace();
        }

        //setbit key_name offset value:           ,         offset       
        //getbit key_name offset:            ,         offset       。

        try {
            System.out.println("name           :" + jedis.getbit("name", 5));
            jedis.setbit("name", 5, true);
            System.out.println("   5    :" + jedis.get("name"));

        }catch(Exception e){
            e.printStackTrace();
        }

        //      key
        try {
            System.out.println("name    :" + jedis.exists("name"));
        }catch(Exception e){
            e.printStackTrace();
        }

        //mset key1 value1 [key2 value2 ...]:    
        //mget key1 [key2 ....]:    
        try {
            System.out.println("    name、name1、name2     :"+jedis.mget("name", "name1", "name2"));
            jedis.mset("one","1","two","2","three","3");
            System.out.println("      one、two、three     :"+jedis.mget("one","two","three"));
        }catch(Exception e){
            e.printStackTrace();
        }

        //expire key time: key      
        try {
            System.out.println("         name :" + jedis.get("name"));
            jedis.expire("name",5);
            Thread.sleep(6000);
            System.out.println("         name :"+jedis.get("name"));

        }catch(Exception e){
            e.printStackTrace();
        }

        //setex key time value:       ,    , set+expire     。
        try{
            jedis.setex("name",5,"carson");
            System.out.println("       name :"+jedis.get("name"));
            Thread.sleep(6000);
            System.out.println("       name :"+jedis.get("name"));
        }catch(Exception e){
            e.printStackTrace();
        }



    }


}

3.List操作

import redis.clients.jedis.BinaryClient;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;

public class ListDemo {
    /**
     *    redis   
     * @return
     */
    public static Jedis getJedis(){
        JedisShardInfo info = new JedisShardInfo("127.0.0.1", 6379);
        Jedis jedis = new Jedis(info);
        return jedis;
    }

    /**
     *   List     
     * List    ,    Java          ,         
     * @param jedis
     */
    public static void testList(Jedis jedis){

        //lpush list_name value:       ,      
        //rpush list_name value        
        //lpop list_name :       
        //rpop list_name :       
        //lrange list_name start end:  start end          
        try{
            jedis.lpush("list_","book");
            jedis.rpush("list_","table");
            jedis.lpush("list_","pen");
            jedis.rpush("list_","pencil");
            jedis.rpush("list_","watch");
            jedis.lpush("list_","ball");
            jedis.rpush("list_","water");
            jedis.rpush("list_","bag");
            System.out.println("    list_      :"+jedis.lrange("list_",0,-1));
            System.out.println("          :"+jedis.lpop("list_"));
            System.out.println("          :"+jedis.rpop("list_"));
        }catch (Exception e){
            e.printStackTrace();
        }
        finally {
            System.out.println();
        }

        //lrem list_name count value:      value     ,  count>0 ,     value     ,   count
        //count<0        ,   value     ,   count
        //count=0         value     
        try{
            System.out.println("  list_     :"+jedis.lrange("list_",0,-1));
            jedis.lrem("list_",2,"book");
            System.out.println("    book     list_    :"+jedis.lrange("list_",0,-1));
        }catch(Exception e){
            e.printStackTrace();
        }
        finally {
            System.out.println();
        }

        //lindex list_name index:    list_name    index  
        //lset list_name index value:      index      value
        //ltrim list_name start end:  start end     
        try{
            System.out.println("  list_   3    :"+jedis.lindex("list_",3));
            jedis.lset("list_",2,"banana");
            System.out.println("     list_     :"+jedis.lrange("list_",0,-1));
            jedis.ltrim("list_",1,3);
            System.out.println("    list_     "+jedis.lrange("list_",0,-1));
        }catch(Exception e){
            e.printStackTrace();
        }
        finally {
            System.out.println();
        }


        //llen  list_name:      
        //linsert list_name before|after pivot value : value  pivot     , pivot    ,    。    pivot ,    pivot  
        try{
            long size = jedis.llen("list_");
            System.out.println(size);
            System.out.println("        list_        :"+jedis.lrange("list_",0,-1));
            jedis.linsert("list_", BinaryClient.LIST_POSITION.BEFORE,"banana","apple");
            System.out.println("           list_     :"+jedis.lrange("list_",0,-1));
            jedis.linsert("list_", BinaryClient.LIST_POSITION.AFTER,"banana","apple");
            System.out.println("           list_     :"+jedis.lrange("list_",0,-1));

        }catch(Exception e){
            e.printStackTrace();
        }
        finally {
            System.out.println();
        }

        //rpoplpush list_name source dest: source       , dest    
        try{
            int size = Integer.parseInt(""+jedis.llen("list_"));
            System.out.println("         list_   :"+jedis.lrange("list_",0,-1));
            for(int i=0;i

4.Set操作

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;

public class SetDemo {

    /**
     *    redis   
     * @return
     */
    public static Jedis getJedis(){
        JedisShardInfo info = new JedisShardInfo("127.0.0.1", 6379);
        Jedis jedis = new Jedis(info);
        return jedis;
    }

    /**
     *       set       ,       Java   ,       、     
     * @param jedis
     */
    public static void testSet(Jedis jedis){

        //sadd set_name value1 [value2 ...]:        
        //smembers set_name:         
        //scard set_name:       
        try{
            jedis.sadd("myset","apple","banana","orange");
            System.out.println(jedis.smembers("myset"));
            System.out.println(jedis.scard("myset"));
        }catch(Exception e){
            e.printStackTrace();
        }
        finally{
            System.out.println();
        }

        //srem set_name value1 [value2 ....]:               ,           
        //spop set_name:             ,         
        try{
            System.out.println("      :"+jedis.srem("myset","banana"));
            System.out.println("         myset     :"+jedis.smembers("myset"));
            jedis.sadd("myset","peer","knif","ball");
            System.out.println("         myset:"+jedis.smembers("myset"));
            System.out.println("        :"+jedis.spop("myset"));
            System.out.println("           myset:"+jedis.smembers("myset"));
        }catch(Exception e){
            e.printStackTrace();
        }
        finally{
            System.out.println();
        }

        //smove source_set dest_set item:    source_set    item,       source_set     item,    item     dest_set ,
        //  item    ,    1,    0.
        //sismember set_name item:    item       set_name 
        try{
            System.out.println("  myset      :"+jedis.smembers("myset"));
            String[] strs = {"banana","apple","peer","melon","berry"};
            int size = strs.length;
            for(int i=0;i

5.Hash操作

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;

import java.util.HashMap;

public class HashDemo {

    /**
     *    redis   
     * @return
     */
    public static Jedis getJedis(){
        JedisShardInfo info = new JedisShardInfo("127.0.0.1", 6379);
        Jedis jedis = new Jedis(info);
        return jedis;
    }

    /**
     *             
     * @param jedis
     */
    public static void testHash(Jedis jedis){

        //hset hash_name key value: hash hash_name  key-value   
        //hmset hash_name Map hash: hash             ,     map   hmset   
        //hget hash_name key:  hash hash_name key   value
        //hmget hash_name key1 [key2 key3...]:    key    
        try{
            jedis.hset("myhash","name","Carson");
            System.out.println("  myhash  name    :"+jedis.hget("myhash","name"));
            HashMap map = new HashMap();
            map.put("age","20");
            map.put("sex","female");
            map.put("birth","0317");
            jedis.hmset("myhash",map);
            System.out.println("      key   value:"+jedis.hmget("myhash","name","age","sex"));

        }catch(Exception e){
            e.printStackTrace();
        }finally {
            System.out.println();
        }

        //hkeys hash_name:  hash     key
        //hvals hash_name:  hash     values
        try{
            System.out.println("  myhash    key:"+jedis.keys("myhash"));
            System.out.println("  myhash    value:"+jedis.hvals("myhash"));
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            System.out.println();
        }

        //hgetall hash_name:  hash       
        //hexists hash_name key:  key    hash  
        try{
            System.out.println("  myhash       :"+jedis.hgetAll("myhash"));
            System.out.println("  name   myhash :"+jedis.hexists("myhash","name"));
        }catch(Exception e){
            e.printStackTrace();
        }finally {
            System.out.println();
        }

        //hlen hash_name:  hash    
        //hdel hash_name key1 [key2...]:  hash          
        try{
            System.out.println("  myhash    :"+jedis.hlen("myhash"));
            System.out.println("       myhash     :"+jedis.hgetAll("myhash"));
            jedis.del("name","sex");
            System.out.println("       myhash   :"+jedis.hgetAll("myhash"));
        }catch(Exception e){
            e.printStackTrace();
        }finally {
            System.out.println();
        }

        //hincrby hash_name key count: hash  key     count。
        //hde
        try{
            jedis.hset("myhash","money","200");
            System.out.println("incr   money    :"+jedis.hget("myhash","money"));
            jedis.hincrBy("myhash","money",10);
            System.out.println("incr   money    :"+jedis.hget("myhash","money"));


        }catch(Exception e){
            e.printStackTrace();
        }


    }

    public static void main(String[] args){
        testHash(getJedis());
    }
}

6.Zset操作

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;

import java.util.HashMap;

public class ZsetDemo {
    /**
     *    redis   
     * @return
     */
    public static Jedis getJedis(){
        JedisShardInfo info = new JedisShardInfo("127.0.0.1", 6379);
        Jedis jedis = new Jedis(info);
        return jedis;
    }

    public static void testZset(Jedis jedis){

        //zadd zset_name score member:zset_name     key  member,value score,    ,         score     ,  member    。
        //zadd zset_name Mapmap: zset_name        member、score    map。
        //zcard zset_name :     zset_name     
        try{
            jedis.zadd("myzset",100.0,"id:1001");
            HashMap map = new HashMap();
            map.put("id:1002",50.0);
            map.put("id:1003",125.0);
            map.put("id:1004",75.0);
            map.put("id:1005",180.0);
            jedis.zadd("myzset",map);
            System.out.println("  myzset       :"+jedis.zcard("myzset"));
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            System.out.println();
        }


        //zcount zset_name min max:      ,score >=min <=max      
        //zrangeByscore(zrangeByscoreWithscores) zset_name start end [withscores]:        score     
        //zrange(zrangeWithscores) zset_name start end [withscores]:              ,     score      
        //zrevrange(zrevrangeWithscores) zset_name start end [withscores]:              ,     score      
        //zrevrangeByscore(zrevrangeByscoreWithscores) zset_name start end [withscores]:        score     ,score      
        try{
            System.out.println("myzset score  100 200      :"+jedis.zcount("myzset",100,200));
            System.out.println("    score         :"+jedis.zrangeByScore("myzset",100,200));
            System.out.println("    score        score:"+jedis.zrangeByScoreWithScores("myzset",100,200));

            System.out.println("      score           :"+jedis.zrange("myzset",0,-1));
            System.out.println("      score           score  :"+jedis.zrangeWithScores("myzset",0,-1));
            System.out.println("      score        :"+jedis.zrevrange("myzset",0,-1));
            System.out.println("      score        score :"+jedis.zrevrangeWithScores("myzset",0,-1));
            System.out.println("      score         :"+jedis.zrevrangeByScore("myzset",200,100));
            System.out.println("      score        score  :"+jedis.zrevrangeByScoreWithScores("myzset",200,100));
        }catch(Exception e){
            e.printStackTrace();
        }finally {
            System.out.println();
        }

        //zrank zset_name member: member zset_name     ,score      ,      0
        //zrevrank zset_name member: member zset_name     ,score      ,      0.
        try{
            System.out.println("           id:1002    :"+jedis.zrank("myzset","id:1002"));
            System.out.println("           id:1002    :"+jedis.zrevrank("myzset","id:1002"));
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            System.out.println();
        }

        //zrem zset_name member [member...]:          member,    member   
        //zremrangebyrank  zset_name start end:          
        //zremrangebyscore zset_name min max:  score      
        try{
            System.out.println("     myzset:"+jedis.zrange("myzset",0,-1));
            jedis.zrem("myzset","id:1001","id:1010");
            System.out.println("zrem   myzset  :"+jedis.zrangeWithScores("myzset",0,-1));
            jedis.zremrangeByRank("myzset",0,1);
            System.out.println("zremByRank   myzset   :"+jedis.zrangeWithScores("myzset",0,-1));
            jedis.zremrangeByScore("myzset",150,200);
            System.out.println("zremrangeByScore   myzset   :"+jedis.zrangeWithScores("myzset",0,-1));

        }catch(Exception e){
            e.printStackTrace();
        }finally {
            System.out.println();
        }

        
    }


    public static void main(String[] args){
        testZset(getJedis());
    }
}

以上のコードはredisの5種類のデータ構造の具体的な操作を述べて、また詳しい注釈があって、いくつかの方法の特性を理解することができて、Redisの使用に対して更に深い理解があることを便利にします.