Java之redis五大類型的使用

redis在java中不能直接使用需要jedis來做中間轉換。

所需jar包:

1.String類型

string是redis最基本的類型,一個key對應一個value。string類型是二進制安全的。意思是redis的string可以包含任何數據。value只最多是512M。在java中代碼如下:
package com.gsl.redis;

import redis.clients.jedis.Jedis;

/**
 * <br>
 * <b>說明:</b> 在Java中使用redis中的String類型
 * <b>作者:</b> Guo.shiLin 
 * <b>日期:</b> 2018年8月9日
 * @version 1.0
 */
public class RedisStringJava {
	public static void main(String[] args) {
		//連接本地redis服務器
		Jedis jedis = new Jedis("localhost");
		System.out.println("本地Redis連接成功!");
		//爲redis設置key-value值
		jedis.set("baidu", "www.baidu.com");
		System.out.println("保存值成功!");
		System.out.println("獲取key的值:" + jedis.get("baidu"));
	}
}

2.list類型

redis列表是簡單的字符串列表,按照插入的順序排序。底層就是一個鏈表。Java代碼如下:
package com.gsl.redis;

import java.util.List;

import redis.clients.jedis.Jedis;

/**
 * 
 * <br>
 * <b>說明:</b> redis list類型底層是一個鏈表,按照插入的順序進行排序。
 * <b>作者:</b> Guo.shiLin
 * <b>日期:</b> 2018年8月9日
 * @version 1.0
 */
public class RedisListJava {

	public static void main(String[] args) {
		Jedis jedis = new Jedis("localhost");
		System.out.println("本地redis連接成功");
		//存儲數據到列表中
		jedis.lpush("IT", "JAVA");
		jedis.lpush("IT", "PHP");
		jedis.lpush("IT", "C++");
		//獲取存儲的數據並輸出
		List<String> list = jedis.lrange("IT", 0, 3);
		list.forEach(string -> System.out.println(string));
	}
}

3.set集合

類似list的無序集合,保證列表中不會有重複數據。它是通過HashTable來實現的。Java代碼如下:

package com.gsl.redis;

import redis.clients.jedis.Jedis;

/**
 * <br>
 * <b>說明:</b> 在Java中redis set的使用,不能放重複元素。
 * <b>作者:</b> Guo.shiLin
 * <b>日期:</b> 2018年8月15日
 * @version 1.0
 */
public class RedisSetDemo {

	public static void main(String[] args) {
		Jedis jedis = new Jedis("localhost");
		System.out.println("連接本地的 Redis 服務成功!");
		//清空user
		jedis.del("user");
		//添加
		jedis.sadd("user", "Tom");
		jedis.sadd("user", "Tom");
		jedis.sadd("user", "chenze");
		jedis.sadd("user", "likui");
		jedis.sadd("user", "liumen");
		//刪除chenze
		jedis.srem("user", "chenze");
		System.out.println(jedis.smembers("user"));//獲取所有的value
		System.out.println(jedis.sismember("user", "likui"));//判斷集合中是否有該元素
		System.out.println(jedis.scard("user"));//返回集合的元素個數
	}

}

4.sort排序

代碼如下:
package com.gsl.redis;

import redis.clients.jedis.Jedis;

/**
 * <br>
 * <b>說明:</b> redis zset排序
 * <b>作者:</b> Guo.shiLin
 * <b>日期:</b> 2018年8月15日
 * @version 1.0
 */
public class RedisSortDemo {
	
	public static void main(String[] args) {
		Jedis jedis = new Jedis("localhost");
		System.out.println("連接本地的 Redis 服務成功!");
		//jedis排序
		//注意,此處rpush和lpush是list的操作。是一個雙向鏈表
		jedis.del("a");//先清除數據
		jedis.rpush("a", "1");
		jedis.rpush("a", "6");
		jedis.rpush("a", "4");
		jedis.rpush("a", "9");
		jedis.rpush("a", "2");
		System.out.println(jedis.lrange("a", 0, -1));
		System.out.println(jedis.sort("a"));
		System.out.println(jedis.lrange("a", 0, -1));
		
	}
}

5.Hash

Redis hash 是一個鍵值對集合。Redis hash是一個string類型的fieldvalue的映射表,hash特別適合用於存儲對象。代碼如下:

package com.gsl.redis;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import redis.clients.jedis.Jedis;

/**
 * <br>
 * <b>說明:</b> redis對Map的使用
 * <b>作者:</b> Guo.shiLin
 * <b>日期:</b> 2018年8月13日
 * @version 1.0
 */
public class RedisMapDemo {

	public static void main(String[] args) {
		Jedis jedis = new Jedis("localhost");
		System.out.println("本地redis連接成功");
		//創建hashMap並添加數據
		Map<String, String> hashMap = new HashMap<String, String>();
		hashMap.put("name", "Tom");
		hashMap.put("age", "12");
		hashMap.put("sex", "man");
		//添加hash類型數據
		jedis.hmset("user", hashMap);
		//第一個參數是redis中hash類型的key,第二、三、四個參數是map裏面對用的key
		List<String> rsmap = jedis.hmget("user", "name", "age", "sex");
		System.out.println(rsmap);
		//刪除map中的sex元素
		jedis.hdel("user", "sex");
		System.out.println(jedis.hmget("user", "sex"));//因爲刪除了所以返回null
		System.out.println(jedis.hlen("user"));//查看Map有多少元素
		System.out.println(jedis.exists("user"));//判斷是否有user這個元素
		System.out.println(jedis.hkeys("user"));//獲取user的key
		System.out.println(jedis.hvals("user"));//獲取user的值
		Iterator<String> iterator = jedis.hkeys("user").iterator();
		while (iterator.hasNext()) {
			String key = iterator.next();
			System.out.println(key + ":" + jedis.hmget("user", key));
		}
	}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章