jedis 和 redisson 有哪些區別?


  Jedis 和 Redisson 都是Java中對Redis操作的封裝。Jedis 只是簡單的封裝了 Redis 的API庫,可以看作是Redis客戶端,它的方法和Redis 的命令很類似。Redisson 不僅封裝了 redis ,還封裝了對更多數據結構的支持,以及鎖等功能,相比於Jedis 更加大。但Jedis相比於Redisson 更原生一些,更靈活。

Redis官方對Java 語言的封裝框架推薦的有十多種(Redis 官網),主要是Jedis 、Redisson。

Jedis

Jedis 是Java 實現的Redis 客戶端,它的API提供了全面的類似於Redis 原生命令的支持。相比於其他Redis 封裝框架更加原生。

它的使用主要是使用JedisPool

初始化:

// 創建JedisPool所需的連接池配置
JedisPoolConfig poolConfig = new JedisPoolConfig();
 
// 最大連接數,默認8
poolConfig.setMaxTotal(1024);
 
// 最大空閑數,默認8
poolConfig.setMaxIdle(100);
 
// poolConfig 各種配置
 
/// 是否啟用pool的jmx管理功能, 默認true
poolConfig.setJmxEnabled(true);
 
// 創建JedisPool連接池
jedisPool = new JedisPool(poolConfig, HOST, PORT, TIMEOUT, PASSWORD);

簡單使用的demo:

/**
     * 同步獲取Jedis
     * @return
     */
    public synchronized static Jedis getJedis(){
 
        if(jedisPool != null){
            //獲取Jedis對象
            Jedis jedis = jedisPool.getResource();
            return jedis;
        }
        return null;
    }
    
    /**
     * 釋放jedis資源
     */
    public static void releaseResource(Jedis jedis){
        if( jedis !=null ){
            jedis.close();
        }
    }

Redisson

Redisson是一個在Redis的基礎上實現的Java駐內存數據網格(In-Memory Data Grid)。它不僅提供了一系列的分布式的Java常用對象,還提供了許多分布式服務。其中包括Bitset, Set, MultiMap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, CountDownLatch, Publish/Subscribe, Bloom filter, Remote service, Spring cache, Executor service, Live Object service, Scheduler service。Redisson提供了使用Redis的最簡單和最便捷的方法。Redisson的宗旨是促進使用者對Redis的關注分離(Separation of Concern),從而讓使用者能夠將精力更集中地放在處理業務邏輯上。(參考)

簡單使用的代碼demo:

//創建配置  
Config config = new Config();  
  
//指定編碼,默認編碼為org.redisson.codec.JsonJacksonCodec   
config.setCodec(new org.redisson.client.codec.StringCodec());  
  
//指定使用單節點部署方式  
config.useSingleServer().setAddress("redis://127.0.0.1:6379");  
  
config.useSingleServer().setClientName("root");
config.useSingleServer().setPassword("abcabc");
 
//創建redisson客戶端
RedissonClient redisson = Redisson.create(config);  
 
RBucket<String> keyObject = redisson.getBucket("key");  
keyObject.set("value");  
 
//關閉RedissonClient  
redisson.shutdown();  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM