標籤: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用戶端的操作