redis在java用戶端的操作

來源:互聯網
上載者:User

標籤:ESS   步驟   code   北京   串連池   安裝redis   test   for   entryset   

redis高效能,速度快,效率高的特點,用來做快取服務器是很不錯的選擇。(和memcache相似)
redis在用戶端的操作步驟:

1.redis單機版操作

1.1通過Jedis對象操作

(1)將安裝redis服務的伺服器的ip地址和redis的連接埠號碼作為構造參數傳遞給Jedis,用來建立一個Jedis對象

  Jedis jedis  = new Jedis(ip,port);

(2)通過第一步建立的jedis對象,操作redis的5大資料類型(hash類型,string類型,list類型,set類型,zset類型,有序)

  jedis.set(string key,string value);

  jedis.get(string key);

(3)操作完成後關閉jedis串連

  jedis.close();

這種方法需要每次建立串連,關閉串連,比較浪費資源。因此使用下面的jedisPool串連池操作單機版redis

 

直接上代碼:

     // 建立jedis對象        Jedis jedis = new Jedis("ip", 6379);        // 操作string資料類型        jedis.set("username", "helloworld");        // 根據key取出對應的value值        String value = jedis.get("username");        // 值輸出        System.out.println(value);        // 關閉串連        jedis.close();

 

1.2通過jedisPool操作jedis

(1)建立JedisPool串連池

  JedisPool pool = new JedisPool(ip,port);

(2)通過串連池獲得jedis對象

  Jedis jedis = pool.getResource();

(3)獲得jedis對象後,可以直接對redis資料類型進行操作

(4)操作完成後將jedis對象歸還串連池,資源回收

(5)串連池不用的時候關閉

    // 建立串連池        JedisPool pool = new JedisPool("ip地址", 6379);        // 獲得連線物件        Jedis jedis = pool.getResource();        // 操作hash類型        Map<String, String> hash = new HashMap<>();        hash.put("name", "tom");        hash.put("age", "23");        hash.put("address", "長江路");        jedis.hmset("student", hash);        Map<String, String> all = jedis.hgetAll("student");        Set<Entry<String, String>> entrySet = all.entrySet();        for (Entry<String, String> entry : entrySet) {            String key = entry.getKey();            String value = entry.getValue();            System.out.println(key + ":" + value);        }// 關閉串連,串連池回收資源        jedis.close();        // 關閉串連池        pool.close();

 

 

2.操作叢集redis-cluster

(1)建立集合列表,用來存放叢集中的每一個redis執行個體

Set<HostAndPort> nodes = new Hash<HostAndPort>();

nodes.add(new HostAndPort(ip.port));

..以此類推,添加每一個redis執行個體

(2)第一步獲得集合列表之後,建立redis叢集執行個體對象

JedisCluster jedisCluster = new JedisCluster(nodes);//需要將redis的節點列表作為作為構造參數傳遞,建立叢集對象

(3)叢集中的每一個redis對象是通過資料槽進行區分的(redis-3.0.0中總共有0--16384個槽位),因此獲得叢集對象之後,可以對叢集進行操作,每一個redis被訪問的幾率是相00的。

jedisCluster.set(String key,String value);

String value = jedisCluster.get(key);

(4)在系統關閉之前,將jedisCluster對象關閉。

jedisCluster.close();

代碼:

@Test    public void testRedis_cluster() {        // 建立set集合        Set<HostAndPort> nodes = new HashSet<>();        // 將每一個節點的ip地址和連接埠號碼添加到集合中        nodes.add(new HostAndPort("192.168.xx.xxx", port));        nodes.add(new HostAndPort("192.168.xx.xxx", port));        nodes.add(new HostAndPort("192.168.xx.xxx", port));        nodes.add(new HostAndPort("192.168.xx.xxx", port));        nodes.add(new HostAndPort("192.168.xx.xxx", port));        nodes.add(new HostAndPort("192.168.xx.xxx", port));        // 建立jedisCluster對象,需要將建立的redis集合列表作為參數傳遞        JedisCluster jedisCluster = new JedisCluster(nodes);        // 通過叢集對象操作redis        jedisCluster.set("address", "北京市長安街");        String value = jedisCluster.get("address");        // 列印結果        System.out.println(value);        // 系統關閉前,關閉jedisCluster對象        jedisCluster.close();    }

 

redis在java用戶端的操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.