一、 使用Java操作Redis前,請先運行Redis服務與下載Redis驅動,以maven工程為例,引入如下jar <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0 ...
一、 使用Java操作Redis前,請先運行Redis服務與下載Redis驅動,以maven工程為例,引入如下jar
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
創建測試類,驗證是否成功連接
public static void main(String[] args) { //設置IP與埠,連接 Redis 服務 Jedis jedis = new Jedis("127.0.0.1",6379); //設置 密碼 jedis.auth("1D9JJ9JIJ0003E4710AC0000596F1A72"); //查看服務是否運行,打出pong表示OK System.out.println("connection is OK==========>: "+jedis.ping()); String name = jedis.get("admin"); System.out.println("姓名:" + name); String noticeVal = jedis.hget("notice", "admin"); System.out.println("通知結果:" + noticeVal); }
執行成功,結果如下
connection is OK==========>: PONG 姓名:null 通知結果:0
二、連接池管理Redis連接,引入redis.properties配置文件
# Redis settings # 最大閑置數 redis.maxIdle=30 # 最小閑置數 redis.minIdle=10 # 最大連接數 redis.maxTotal=100 # redis伺服器的IP地址 redis.url=127.0.0.1 # redis埠 redis.port=6379 # redis密碼 redis.password=1D9JJ9JIJ0003E4710AC0000596F1A72 # 超時時間 redis.timeout=2000
編寫工具類RedisUtil
package com.util; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; /** * RedisUtil工具類 * * @author Administrator * */ public final class RedisUtil { private static final Log logger = LogFactory.getLog(RedisUtil.class); private static JedisPool jedisPool = null; /** * 初始化Redis連接池 */ static { try { // 載入配置文件 InputStream in = RedisUtil.class.getClassLoader().getResourceAsStream("redis.properties"); Properties pro = new Properties(); try { pro.load(in); } catch (IOException e) { e.printStackTrace(); } // 獲得池子對象 JedisPoolConfig poolConfig = new JedisPoolConfig(); poolConfig.setMaxIdle(Integer.parseInt(pro.get("redis.maxIdle") .toString()));// 最大閑置個數 poolConfig.setMinIdle(Integer.parseInt(pro.get("redis.minIdle") .toString()));// 最小閑置個數 poolConfig.setMaxTotal(Integer.parseInt(pro.get("redis.maxTotal") .toString()));// 最大連接數 jedisPool = new JedisPool(poolConfig, pro.getProperty("redis.url"), Integer.parseInt(pro.getProperty("redis.port")), Integer.parseInt(pro.getProperty("redis.timeout")), pro.getProperty("redis.password")); } catch (Exception e) { logger.error("異常錯誤", e); } } /** * 獲取Jedis實例 * * @return */ public synchronized static Jedis getJedis() { try { if (jedisPool != null) { Jedis resource = jedisPool.getResource(); return resource; } else { return null; } } catch (Exception e) { e.printStackTrace(); return null; } } /** * 釋放jedis資源 * * @param jedis */ public static void returnResource(final Jedis jedis) { if (jedis != null) { jedis.close(); } } }
測試
public static void main(String[] args) { Jedis jedis = RedisUtil.getJedis(); String result = jedis.set("admin", "管理員"); System.out.println("結果:" + result); //釋放資源 RedisUtil.returnResource(jedis); }
結果:OK
使用RedisDesktopManager可視化工具查看
其他數據類型如hash(哈希)、list(列表)、set(集合)及zset(有序集合)的增刪改查操作和redis原生指令大同小異,抽取為通用工具類。