java操作redis基本功能_Main方法(六)

在java語言中使用redis需要兩個jar包,commons-pool-1.6.jar和jedis-2.1.0.jar。下面是對redis的5中數據類型的基本操作,使用Main方法實現,下篇blog會使用spring來集成redis。本地redis服務器啓動,默認配置端口6379。直接上代碼

package com.gyc.test;

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

import org.junit.Before;
import org.junit.Test;

import redis.clients.jedis.Jedis;

public class TestRedis {
	private Jedis jedis;

	@Before
	public void setup() {
		System.out.println("---------------------------------setup------------------");
		// 連接redis服務器,127.0.0.1:6379
		jedis = new Jedis("127.0.0.1", 6379);
	}

	/**
	 * redis存儲字符串
	 */
	@Test
	public void testString() {
		System.out.println("---------------------------------testString------------------");
		// -----添加數據----------
		jedis.set("name", "shuo");// 向key-->name中放入了value-->shuo
		System.out.println(jedis.get("name"));// 執行結果:shuo

		jedis.append("name", " hua"); // 拼接
		System.out.println(jedis.get("name"));

		jedis.del("name"); // 刪除某個鍵
		System.out.println(jedis.get("name"));
		// 設置多個鍵值對
		jedis.mset("name", "geshuo", "age", "2", "add", "shanghai");
		jedis.incr("age"); // 進行加1操作
		System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-" + jedis.get("add"));

	}

	/**
	 * redis操作Map
	 */
	@Test
	public void testMap() {
		System.out.println("---------------------------------testMap------------------");
		// -----添加數據----------
		Map<String, String> map = new HashMap<String, String>();
		map.put("name", "shuo");
		map.put("age", "2");
		map.put("add", "shanghai");
		jedis.hmset("user", map);
		// 取出user中的name,執行結果:[minxr]-->注意結果是一個泛型的List
		// 第一個參數是存入redis中map對象的key,後面跟的是放入map中的對象的key,後面的key可以跟多個,是可變參數
		List<String> rsmap = jedis.hmget("user", "name", "age", "qq");
		System.out.println(rsmap);

		// 刪除map中的某個鍵值
		jedis.hdel("user", "age");
		System.out.println(jedis.hmget("user", "age")); // 因爲刪除了,所以返回的是null
		System.out.println(jedis.hlen("user")); // 返回key爲user的鍵中存放的值的個數2
		System.out.println(jedis.exists("user"));// 是否存在key爲user的記錄 返回true
		System.out.println(jedis.hkeys("user"));// 返回map對象中的所有key
		System.out.println(jedis.hvals("user"));// 返回map對象中的所有value

		Iterator<String> iter = jedis.hkeys("user").iterator();
		while (iter.hasNext()) {
			String key = iter.next();
			System.out.println(key + ":" + jedis.hmget("user", key));
		}
	}

	/**
	 * jedis操作List
	 */
	@Test
	public void testList() {
		System.out.println("---------------------------------testList------------------");
		// 開始前,先移除所有的內容
		jedis.del("javaEE");
		System.out.println(jedis.lrange("javaEE", 0, -1));
		// 先向key java中存放三條數據
		jedis.lpush("javaEE", "spring");
		jedis.lpush("javaEE", "struts");
		jedis.lpush("javaEE", "ibatis");
		// 再取出所有數據jedis.lrange是按範圍取出,
		// 第一個是key,第二個是起始位置,第三個是結束位置,jedis.llen獲取長度 -1表示取得所有
		System.out.println(jedis.lrange("javaEE", 0, -1));

		jedis.del("javaEE");
		jedis.rpush("javaEE", "spring");
		jedis.rpush("javaEE", "struts");
		jedis.rpush("javaEE", "ibatis");
		System.out.println(jedis.lrange("javaEE", 0, -1));
	}

	/**
	 * jedis操作Set
	 */
	@Test
	public void testSet() {
		System.out.println("---------------------------------testSet------------------");
		// 添加
		jedis.sadd("person", "aa");
		jedis.sadd("person", "bb");
		jedis.sadd("person", "cc");
		jedis.sadd("person", "dd");
		jedis.sadd("person", "ee");
		// 移除noname
		jedis.srem("person", "ee");
		System.out.println(jedis.smembers("person"));// 獲取所有加入的value
		System.out.println(jedis.sismember("person", "ee"));// 判斷 ee
															// 是否是user集合的元素
		System.out.println(jedis.srandmember("person"));
		System.out.println(jedis.scard("person"));// 返回集合的元素個數
	}

	@Test
	public void test() throws InterruptedException {
		System.out.println("---------------------------------test------------------");
		// jedis 排序
		// 注意,此處的rpush和lpush是List的操作。是一個雙向鏈表(但從表現來看的)
		jedis.del("a");// 先清除數據,再加入數據進行測試
		jedis.rpush("a", "1");
		jedis.lpush("a", "6");
		jedis.lpush("a", "3");
		jedis.lpush("a", "9");
		System.out.println(jedis.lrange("a", 0, -1));// [9, 3, 6, 1]
		System.out.println(jedis.sort("a")); // [1, 3, 6, 9] //輸入排序後結果
		System.out.println(jedis.lrange("a", 0, -1));
	}

}


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