jedis操作redis基礎
阿新 • • 發佈:2018-12-17
package com.cui.redis01_helloworld; 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 HelloWorld02 { private Jedis jedis; @Before public void setup() { // 連線redis伺服器,192.168.0.100:6379 jedis = new Jedis("192.168.0.187", 7003); // 許可權認證,沒有密碼不需要設定 jedis.auth("Ninestar123");//設定訪問密碼 } /** * redis儲存字串 */ @Test public void testString() { // -----新增資料---------- jedis.set("name", "xinxin");// 向key-->name中放入了value-->xinxin System.out.println(jedis.get("name"));// 執行結果:xinxin // 拼接 jedis.append("name", " is my lover"); System.out.println(jedis.get("name")); // 刪除某個鍵 jedis.del("name"); System.out.println(jedis.get("name")); // 設定多個鍵值對 jedis.mset("name", "liuling", "age", "23", "qq", "476777XXX"); // 進行加1操作 jedis.incr("age"); System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-" + jedis.get("qq")); } /** * redis操作Map */ @Test public void testMap() { // -----新增資料---------- Map<String, String> map = new HashMap<String, String>(); map.put("name", "xinxin"); map.put("age", "22"); map.put("qq", "123456"); 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() { // 開始前,先移除所有的內容 jedis.del("java framework"); System.out.println(jedis.lrange("java framework", 0, -1)); // 先向key java framework中存放三條資料 jedis.lpush("java framework", "spring"); jedis.lpush("java framework", "struts"); jedis.lpush("java framework", "hibernate"); // 再取出所有資料jedis.lrange是按範圍取出, // 第一個是key,第二個是起始位置,第三個是結束位置,jedis.llen獲取長度 -1表示取得所有 System.out.println(jedis.lrange("java framework", 0, -1)); jedis.del("java framework"); jedis.rpush("java framework", "spring"); jedis.rpush("java framework", "struts"); jedis.rpush("java framework", "hibernate"); System.out.println(jedis.lrange("java framework", 0, -1)); } /** * jedis操作Set */ @Test public void testSet() { jedis.del("user"); // 新增 jedis.sadd("user", "liuling"); jedis.sadd("user", "xinxin"); jedis.sadd("user", "ling"); jedis.sadd("user", "zhangxinxin"); jedis.sadd("user", "who"); // 移除noname jedis.srem("user", "who"); System.out.println(jedis.smembers("user"));// 獲取所有加入的value System.out.println(jedis.sismember("user", "who"));// 判斷 who // 是否是user集合的元素 System.out.println(jedis.srandmember("user")); System.out.println(jedis.scard("user"));// 返回集合的元素個數 } @Test public void test() throws InterruptedException { // 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)); } @Test public void testRedisPool() { Redis01_jedisPool.getJedis().set("newname", "中文測試"); System.out.println(Redis01_jedisPool.getJedis().get("newname")); } }