java通過jedis使用redis,以及部分api介紹

package redis.demo;

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

import redis.clients.jedis.Jedis;

public class Demo1 {

    public static Jedis buildJedis() {
        String host = "127.0.0.1";// ip
        int port = 6379;// 默認端口
        Jedis jedis = new Jedis(host, port);
        jedis.auth("tiger");// 配置通行證密碼
        return jedis;
    }

    public static void main(String[] args) throws InterruptedException {
        boolean btemp = false;
        long ltemp = 0L;
        String value = null;
        List<String> values = null;
        Jedis jedis = buildJedis();

        // 刪除測試值
        jedis.select(0);
        jedis.del("key3");
        jedis.select(1);
        jedis.del("key3");
        jedis.select(0);

        jedis.set("key", "cjw");// 創建key
        value = jedis.get("key");// 獲取key
        System.out.println("value: " + value);// value: cjw
        jedis.del("key");// 刪除key
        value = jedis.get("key");
        System.out.println("value: " + value);// value: null
        btemp = jedis.exists("key");
        System.out.println("key是否存在: " + btemp);// key是否存在: false
        jedis.set("key2", "我是key2的值");// 創建key
        jedis.expire("key2", 2);// 設置key的生存時間,單位爲秒
        value = jedis.get("key2");
        System.out.println("value: " + value);// value: 我是key2的值
        System.out.println("線程休眠中--------------");
        Thread.sleep(2000);// 線程休眠2秒
        value = jedis.get("key2");
        System.out.println("value: " + value);// value: null
        // jedis.expireAt(key, unixTime) //設置生存時間,參數爲時間戳這裏不演示
        jedis.set("key3", "我是key3的值");// 創建key
        // KEYS * 匹配數據庫中所有 key 。
        // KEYS h?llo 匹配 hello , hallo 和 hxllo 等。
        // KEYS h*llo 匹配 hllo 和 heeeeello 等。
        // KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo 。
        Set<String> keys = jedis.keys("*");// 獲取所有key,這裏不迭代演示
        jedis.select(1);// jedis默認數據庫爲0,這裏選擇數據庫爲1
        value = jedis.get("key3");
        System.out.println("value: " + value);// value: null 原來在數據庫0的key3找不到
        jedis.select(0);// 切換爲0數據庫
        jedis.move("key3", 1);// 將當前數據庫的key3移動到數據庫1裏面
        value = jedis.get("key3");
        System.out.println("value: " + value);// value: null
        jedis.select(1);// 切換到1數據庫
        jedis.expire("key3", 2);
        ltemp = jedis.ttl("key3");// 返回剩餘秒數
        System.out.println("剩餘生存時間: " + ltemp);
        ltemp = jedis.pttl("key3");// 返回剩餘生存毫秒數
        System.out.println("剩餘生存時間: " + ltemp);
        jedis.persist("key3");// 移除key3的生存時間,轉爲永久
        System.out.println("線程休眠中--------------");
        Thread.sleep(2000);
        value = jedis.get("key3");
        System.out.println("value: " + value);// value: 我是key3的值
        jedis.rename("key3", "key4");// 重命名key
        value = jedis.get("key4");
        System.out.println("value: " + value);// value: 我是key3的值
        jedis.renamenx("key4", "key3");// 當新key名沒有被使用才改名稱
        value = jedis.type("key3");
        System.out.println("key3的儲存類型: " + value);// key3的儲存類型: string
        jedis.set("key4", "10");// 創建key
        jedis.decr("key4");// 使key4的數值減1
        value = jedis.get("key4");
        System.out.println("value: " + value);// value: 9
        jedis.decrBy("key4", 5);// 使key4減去指定數值
        value = jedis.get("key4");
        System.out.println("value: " + value);// value: 4
        jedis.incr("key4");// 使key4的數值加1
        jedis.incrBy("key4", 5);// 加上指定數值
        value = jedis.get("key4");
        System.out.println("value: " + value);// value: 10
        List<String> keyList = jedis.mget("key3", "key4");// 查詢多個key

        // hash表操作
        Map<String, String> userMap = new HashMap<String, String>();
        userMap.put("name", "小明");
        userMap.put("age", "16");
        jedis.hmset("key5", userMap);
        values = jedis.hmget("key5", "name");
        for (String str : values) {
            System.out.println("遍歷key5的field的值: " + str);
            // 遍歷key5的field的值: 小明
        }
        values = jedis.hmget("key5", "age");
        for (String str : values) {
            System.out.println("遍歷key5的field的值: " + str);
            // 遍歷key5的field的值: 16
        }
        values = jedis.hvals("key5");// 返回key5的所有field的值
        for (String str : values) {
            System.out.println("遍歷key5的field的值: " + str);
            // 遍歷key5的field的值: 16
            // 遍歷key5的field的值: 小明
        }
        value = jedis.hget("key5", "name");// 獲取指定key指定域的值
        System.out.println("value: " + value);// value: 小明
        jedis.hset("key5", "name", "小勇");// 創建hash表的值
        value = jedis.hget("key5", "name");// 獲取指定key指定域的值
        System.out.println("value: " + value);// value: 小勇

        // redis還有很多數據類型這裏就不一一嘗試了
    }
}
// value: cjw
// value: null
// key是否存在: false
// value: 我是key2的值
// 線程休眠中--------------
// value: 我是key2的值
// value: null
// value: null
// 剩餘生存時間: 2
// 剩餘生存時間: 1999
// 線程休眠中--------------
// value: 我是key3的值
// value: 我是key3的值
// key3的儲存類型: string
// value: 9
// value: 4
// value: 10
// 遍歷key5的field的值: 小明
// 遍歷key5的field的值: 16
// 遍歷key5的field的值: 16
// 遍歷key5的field的值: 小明
// value: 小明
// value: 小勇

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