1. 程式人生 > >Redis學習之java程式碼實現(Jedis)

Redis學習之java程式碼實現(Jedis)

前面兩篇說過redis的安裝使用和密碼設定後,現在來看看怎麼用java程式碼連線伺服器,並使用redis。

首先專案中需要有redis的驅動包,下載Jedis.jar

下載最新驅動包,放到專案的lib目錄下,確保專案包含該驅動包。

如果是maven專案,可以直接在pom.xml檔案中引入如下配置:

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.5.2</version>
</dependency>

連線Redis服務:
public static void main(String[] args){
		//連線本地的Redis服務
		Jedis jedis = new Jedis("127.0.0.1", 6379);
		System.out.println("連線成功!");
		//密碼驗證
		jedis.auth("123456");
		//檢視服務是否執行
		System.out.println("服務是否執行:" + jedis.ping());
	}

輸出結果如下,連線成功。
連線成功!
服務是否執行:PONG

String(字串) 型別例項
public static void main(String[] args){
		//連線本地的Redis服務
		Jedis jedis = new Jedis("127.0.0.1", 6379);
		System.out.println("連線成功!");
		//密碼驗證
		jedis.auth("123456");
		//設定字串資料
		jedis.set("myKey", "testStr");
		//通過key輸出快取內容
		System.out.println("輸出內容為:" + jedis.get("myKey"));
	}

輸出結果:
連線成功!
輸出內容為:testStr

LIst(列表)型別例項
public static void main(String[] args){
		//連線本地的Redis服務
		Jedis jedis = new Jedis("127.0.0.1", 6379);
		System.out.println("連線成功!");
		//密碼驗證
		jedis.auth("123456");
		//儲存List快取資料
		jedis.lpush("test-list", "Java");
		jedis.lpush("test-list", "PHP");
		jedis.lpush("test-list", "C++");
		//獲取list快取資料
		List<String> listCache = jedis.lrange("test-list", 0, 3);
		for (int i = 0; i < listCache.size(); i++) {
			System.out.println("快取輸出:" + listCache.get(i));
		}
	}

輸出結果:
連線成功!
快取輸出:C++
快取輸出:PHP
快取輸出:Java

Hash(雜湊)型別例項

public static void main(String[] args){
		//連線本地的Redis服務
		Jedis jedis = new Jedis("127.0.0.1", 6379);
		System.out.println("連線成功!");
		//密碼驗證
		jedis.auth("123456");
		//儲存Hash型別快取資料
		Map<String, String> hashMap = new HashMap<String, String>();
		hashMap.put("xiaoming", "man");
		hashMap.put("xiaohua", "women");
		hashMap.put("xiaoma", "man");
		jedis.hmset("test-hash", hashMap);
		//獲取hash型別快取資料
		Map<String, String> hashData = jedis.hgetAll("test-hash");
		System.out.println("獲取hash快取資料(xiaoming):"+hashData.get("xiaoming"));
		System.out.println("獲取hash快取資料(xiaohua):"+hashData.get("xiaohua"));
		System.out.println("獲取hash快取資料(xiaoma):"+hashData.get("xiaoma"));
	}

輸出結果:
連線成功!
獲取hash快取資料(xiaoming):man
獲取hash快取資料(xiaohua):women
獲取hash快取資料(xiaoma):man

Set(無序,不重複集合) 型別例項

public static void main(String[] args){
		//連線本地的Redis服務
		Jedis jedis = new Jedis("127.0.0.1", 6379);
		System.out.println("連線成功!");
		//密碼驗證
		jedis.auth("123456");
		//儲存Set快取資料
		jedis.sadd("test-set", "Java");
		jedis.sadd("test-set", "PHP");
		jedis.sadd("test-set", "C++");
		jedis.sadd("test-set", "PHP");
		//獲取set快取資料
		Set<String> setCache = jedis.smembers("test-set");
		for(String setStr : setCache){
			System.out.println("Set集合快取輸出:" + setStr);
		}
	}

輸出結果:

連線成功!
Set集合快取輸出:PHP
Set集合快取輸出:C++
Set集合快取輸出:Java


ZSet(有序,不重複集合) 型別例項
public static void main(String[] args){
		//連線本地的Redis服務
		Jedis jedis = new Jedis("127.0.0.1", 6379);
		System.out.println("連線成功!");
		//密碼驗證
		jedis.auth("123456");
		//儲存zset型別快取資料
		jedis.zadd("test-zset",1,"Java");
		jedis.zadd("test-zset",3,"C++");
		jedis.zadd("test-zset",2,"PHP");
		jedis.zadd("test-zset",2,"PHP");
		//獲取zset快取資料型別
		Set<String> setCache = jedis.zrange("test-zset", 0, 5);
		for(String setStr : setCache){
			System.out.println("獲取zset快取資料:" + setStr);
		}
	}

輸出結果:

連線成功!
獲取zset快取資料Java
獲取zset快取資料PHP
獲取zset快取資料C++
注:zset每個儲存元素都會關聯一個double型別的數值,redis就是根據這個數值進行排序的,數值可以重複,但是儲存元素不可以重複。