『網際網路架構』軟體架構-jedis客戶端使用(51)
之前講的redis的單機,redis的叢集,這次講講redis的客戶端,老鐵們開始開車。原始碼:https://github.com/limingios/netFuture/tree/master/原始碼/『網際網路架構』軟體架構-jedis客戶端使用(51)/jedis
(一)Jedis介紹
Jedis 是 Redis 官方首選的 Java 客戶端開發包。
https://github.com/xetorthio/jedis
(二)使用
Jedis的基本使用非常簡單,只需要建立Jedis物件的時候指定host,port, password即可。當然,Jedis物件又很多構造方法,都大同小異,只是對應和Redis連線的socket的引數不一樣而已。
- 首先通過maven引入Jedis的依賴:
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
- 簡單例子
Jedis jedis = new Jedis("192.168.0.12", 6379); jedis.set("idig8", "www.idig8.com!"); System.out.println(jedis.get("wk")); jedis.close();
每一個介面都代表了一類Redis命令,例如JedisCommands中包含了SET GET等命令,MultiKeyCommands中包含了針對多個Key的MSET MGET等命令。
jedis連線池是基於apache-commons pool2實現的。在構建連線池物件的時候,需要提供池物件的配置物件,及JedisPoolConfig(繼承自GenericObjectPoolConfig)。可以通過這個配置物件對連線池進行相關引數的配置(如最大連線數,最大空數等)。
Jediscluster類圖和jedis類圖大致一樣,不過jedisCluster有一些命令是不可用的。比如BinaryJedisCluster類被作廢的命令.
注意:jedis 客戶端,針對叢集和單redis的方式是不同的,一定要注意,程式碼還是有區別的。如果用單redis的方式連線叢集會報錯:
Exception in thread “main” redis.clients.jedis.exceptions.JedisMovedDataException: MOVED
這個錯誤是由於redis將key分配到編號為14864這個slot上了, 而這個slot位於127.0.0.1:7888這臺機器
PS:直接看原始碼最來勁,其實封裝跟之前的redis命令一致。只要redis命令會基本java操作通過jedis操作redis也是這樣,特別注意的就是jedisCluster的操作比較特殊點。
>>原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
>>原文連結地址:上一篇:已是最新文章