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