[轉載] 使用Redis的Java用戶端Jedis

來源:互聯網
上載者:User

標籤:

轉載自http://aofengblog.blog.163.com/blog/static/631702120147298317919/

在實際的項目開發中,各種語言是使用Redis的用戶端庫來與Redis互動。針對Java語言,Redis官方推薦Jedis。

Jedis提供了多種操作方式:單機單串連方式、單機串連池方式、多機分布式+串連池方式。

預備

jedis-2.5.2
commons-pool2-2.2.jar

使用單串連

此方式僅建議用於開發環境做調試用。

// 建立串連
String host = "192.168.56.102";int port = 6379;Jedis client = new Jedis(host, port);
// 執行set指令String result = client.set("key-string", "Hello, Redis!");System.out.println( String.format("set指令執行結果:%s", result) );
// 執行get指令String value = client.get("key-string");System.out.println( String.format("get指令執行結果:%s", value) );

運行上述代碼,控制台輸出:

set指令執行結果:OK              
get指令執行結果:Hello, Redis!

使用串連池

此方式適用於僅使用單個Redis執行個體的情境。

// 產生串連池配置資訊JedisPoolConfig config = new JedisPoolConfig();config.setMaxIdle(10);config.setMaxTotal(30);config.setMaxWaitMillis(3*1000);// 在應用初始化的時候產生串連池JedisPool pool = new JedisPool(config, "192.168.56.102", 6379);// 在業務操作時,從串連池擷取串連Jedis client = pool.getResource();try {    // 執行指令    String result = client.set("key-string", "Hello, Redis!");    System.out.println( String.format("set指令執行結果:%s", result) );    String value = client.get("key-string");    System.out.println( String.format("get指令執行結果:%s", value) );} catch (Exception e) {    // TODO: handle exception} finally {    // 業務操作完成,將串連返回給串連池    if (null != client) {        pool.returnResource(client);    }} // end of try block// 應用關閉時,釋放串連池資源pool.destroy();

運行上述代碼,控制台輸出:

set指令執行結果:OK              
get指令執行結果:Hello, Redis!

使用串連池+分布式

在規模較大的系統中,往往會有多個Redis執行個體做負載平衡。並且還實現主從備份,當主執行個體發生故障時,切換至從執行個體提供服務。
類似於Memcached的用戶端,Jedis也提供了用戶端分布式操作的方式,採用一致性雜湊演算法。

// 產生多機串連資訊列表List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();shards.add( new JedisShardInfo("127.0.0.1", 6379) );shards.add( new JedisShardInfo("192.168.56.102", 6379) );// 產生串連池配置資訊JedisPoolConfig config = new JedisPoolConfig();config.setMaxIdle(10);config.setMaxTotal(30);config.setMaxWaitMillis(3*1000);// 在應用初始化的時候產生串連池ShardedJedisPool pool = new ShardedJedisPool(config, shards);// 在業務操作時,從串連池擷取串連ShardedJedis client = pool.getResource();try {    // 執行指令    String result = client.set("key-string", "Hello, Redis!");    System.out.println( String.format("set指令執行結果:%s", result) );    String value = client.get("key-string");    System.out.println( String.format("get指令執行結果:%s", value) );} catch (Exception e) {    // TODO: handle exception} finally {    // 業務操作完成,將串連返回給串連池    if (null != client) {        pool.returnResource(client);    }} // end of try block// 應用關閉時,釋放串連池資源pool.destroy();

運行上述代碼,控制台輸出:

set指令執行結果:OK              
get指令執行結果:Hello, Redis!

[轉載] 使用Redis的Java用戶端Jedis

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.