Redis不僅是使用命令來操作,現在基本上主流的語言都有客戶端支持,比如java、C、C#、C++、php、Node.js、Go等。 在官方網站里列一些Java的客戶端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推薦使用Jedis和Redisson。 在企業中用的最多的就是Jedis,Jedis同樣也是托管在github上,地址:https://github.com/xetorthio/jedis。
使用Jedis時,需要導入兩個jar包:
Jedis的基本操作是:
Jedis官方文檔:http://xetorthio.github.io/jedis/
Jedis的常用API是:
Jedis的基本操作是:
@Test public void testJedisSingle(){ //1 設置ip地址和端口 Jedis jedis = new Jedis("localhost", 6379); //2 設置數據 jedis.set("name", "qingmu"); //3 獲得數據 String name = jedis.get("name"); System.out.println(name); //4 釋放資源 jedis.close(); }
jedis連接池的使用:
jedis連接資源的創建與銷毀是很消耗程序性能,所以jedis為我們提供了jedis的池化技術,jedisPool在創建時初始化一些連接資源存儲到連接池中,使用jedis連接資源時不需要創建,而是從連接池中獲取一個資源進行redis的操作,使用完畢后,不需要銷毀該jedis連接資源,而是將該資源歸還給連接池,供其他請求使用。
Jedis連接池查詢API的方式:
jedisPool的基本使用:
@Test public void testJedisPool(){ //1 獲得連接池配置對象,設置配置項 JedisPoolConfig config = new JedisPoolConfig(); // 1.1 最大連接數 config.setMaxTotal(30); // 1.2 最大空閑連接數 7.4 案例-編寫jedis連接池工具類 JedisUtils.java config.setMaxIdle(10); //2 獲得連接池 JedisPool jedisPool = new JedisPool(config, "localhost", 6379); //3 獲得核心對象 Jedis jedis = null; try { jedis = jedisPool.getResource(); //4 設置數據 jedis.set("name", "itcast"); //5 獲得數據 String name = jedis.get("name"); System.out.println(name); } catch (Exception e) { e.printStackTrace(); } finally{ if(jedis != null){ jedis.close(); } // 虛擬機關閉時,釋放pool資源 if(jedisPool != null){ jedisPool.close(); } } }
Jedis的工具類的編寫:
package com.itheima.utils; import java.util.ResourceBundle; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class JedisUtils { private static JedisPoolConfig poolConfig = null; private static JedisPool jedisPool = null; private static Integer maxTotal = null; private static Integer maxIdle = null; private static String host = null; private static Integer port = null; static{ jedis.properties //讀取配置文件 獲得參數值 ResourceBundle rb = ResourceBundle.getBundle("jedis"); maxTotal = Integer.parseInt(rb.getString("jedis.maxTotal")); maxIdle = Integer.parseInt(rb.getString("jedis.maxIdle")); port = Integer.parseInt(rb.getString("jedis.port")); host = rb.getString("jedis.host"); poolConfig = new JedisPoolConfig(); poolConfig.setMaxTotal(maxTotal); poolConfig.setMaxIdle(maxIdle); jedisPool = new JedisPool(poolConfig,host,port); } public static Jedis getJedis(){ Jedis jedis = jedisPool.getResource(); return jedis; } }
jedis.properties
jedis.host=localhost jedis.port=6379 jedis.maxTotal=30 jedis.maxIdle=10