Java基礎知識整理之操做Redis(三)

Java操做Redis之操做數據

1.操做 String

1.1 源碼

public void stringOperator(){
        //添加數據
        jedis.set("name", "Wayfreem");// 添加一個 key 爲 name, 而後 value 爲 Wayfreem 
        System.out.println(jedis.get("name"));// 執行結果:xinxin
    
         //拼接指定的key
        jedis.append("name", " is my name");    //在 name 值的後繼續追加 字符串    
        System.out.println(jedis.get("name"));
    
        // 刪除某個鍵
        jedis.del("name");
        System.out.println("刪除name 鍵以後:" + jedis.get("name"));
    
        jedis.mset("name", "Wayfreem", "age", "23", "qq", "5234XXXX"); // 設置多個鍵值對
        //進行加1操做
        jedis.incr("age"); 
        System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-"+ jedis.get("qq"));
    }

1.2 執行的結果

clipboard.png

1.3 在 redis-cli 中查看

clipboard.png

2.操做 Map

2.1 源碼

public void mapOperator(){
    //添加數據
    Map<String, String> map = new HashMap<String, String>();
    map.put("name", "Wayfreem");
    map.put("age", "23");
    map.put("qq", "5234XXXX");
        
    //添加一個 user 的 key, value 爲 map 
    jedis.hmset("user", map);
        
    //獲取對應key下的value,用數組返回
    List<String> rsmap = jedis.hmget("user", "name", "age", "qq");
    System.out.println(rsmap);
        
    // 刪除map中的某個鍵值, 第一個參數是 map(如今的user),第二個參數是 map 中的 key
    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

    //循環出全部的key user下面的全部的 K-V
    Iterator<String> iter = jedis.hkeys("user").iterator();
    while (iter.hasNext()) {
        String key = iter.next();
        System.out.println(key + ":" + jedis.hmget("user", key));
    }
}

2.2 執行結果

clipboard.png

2.3 redis-cli 中查看

clipboard.png

3.操做List

3.1 源碼

public void listOperator() {
    //刪除指定的key
    jedis.del("framework");
        
    System.out.println(jedis.lrange("framework", 0, -1));    //返回值爲 [] 由於沒有數據
        
    /*  Redis Lpush 命令將一個或多個值插入到列表頭部。
     *  若是 key 不存在,一個空列表會被建立並執行 LPUSH 操做。
     *  當 key 存在但不是列表類型時,返回一個錯誤。
     */
    
    // 先向key framework中存放三條數據
    jedis.lpush("framework", "angular");
    jedis.lpush("framework", "vue");
    jedis.lpush("framework", "react");
        
    // 再取出全部數據jedis.lrange是按範圍取出,
    // 第一個是key,第二個是起始位置,第三個是結束位置,jedis.llen獲取長度 -1表示取得全部
    System.out.println(jedis.lrange("framework", 0, -1));

    /*
     * Redis RPUSH命令插入全部指定的值,在存儲在列表的key尾部。
     * 若是鍵不存在,則執行壓棧操做以前建立的空列表。
     * 當key持有的值不是列表,則返回一個錯誤。
     */
    jedis.del("framework");
    jedis.rpush("framework", "angular");
    jedis.rpush("framework", "vue");
    jedis.rpush("framework", "react");
    System.out.println(jedis.lrange("framework", 0, -1));
}

3.2 執行結果

clipboard.png

3.3 redis-cli 中查看

clipboard.png

結合Java基礎知識整理之操做Redis(二)中的源碼html

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

import redis.clients.jedis.Jedis;

public class RedisStudy {

    //聲明 redis 對象
    private static Jedis jedis;

    private String host = "127.0.0.1";    //測試地址
    private int port = 6379;    //端口
    private String pwd = "foobared";    //密碼
    
    /**
     * 鏈接redis
     */
    public void getJedis() {
        try {
            jedis = new Jedis(host, port); // 鏈接redis服務器
            String auth = jedis.auth(pwd); // 權限認證
            
            System.out.println("connet the redis:"+auth);
        } catch (Exception e) {
            System.out.println("緩存連接錯誤");
        }
    }
    
    /**
     * 清除全部的緩存
     */
    public void ClearDB() {
        String str = jedis.flushDB();
        System.out.println("flush all Keys:" + str);
    }
    
    /**
     * 找到全部的KEY
     */
    public void findAllKeys(){
        Set<String> set = jedis.keys("*");
        for (String str : set) {
              System.out.println(str);
        }
    }
    
    /**
     * 操做String
     * 添加數據 使用 set
     * 拼接指定 key 使用 append
     * 刪除指定的key 使用 del
     * 對指定的 key 加 1操做 使用 incr
     */
    public void stringOperator(){
        //添加數據
        jedis.set("name", "Wayfreem");// 添加一個 key 爲 name, 而後 value 爲 Wayfreem 
        System.out.println(jedis.get("name"));// 執行結果:xinxin
    
         //拼接指定的key
        jedis.append("name", " is my name");    //在 name 值的後繼續追加 字符串    
        System.out.println(jedis.get("name"));
    
        // 刪除某個鍵
        jedis.del("name");
        System.out.println("刪除name 鍵以後:" + jedis.get("name"));
    
        jedis.mset("name", "Wayfreem", "age", "23", "qq", "5234XXXX"); // 設置多個鍵值對
        //進行加1操做
        jedis.incr("age"); 
        System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-"+ jedis.get("qq"));
    }
    
    /**
     * 操做 Map redis 上面叫作 hash
     * 添加數據 使用 hmset
     * 獲取數據 使用 hmget
     * 判斷key 對應的個數 使用 hlen
     * 判斷key 是否存在 使用 exists
     * 獲取 map 中全部的 key 使用 hkeys
     * 獲取 map 中全部的 key的 value 使用 hvals
     */
    public void mapOperator(){
        //添加數據
        Map<String, String> map = new HashMap<String, String>();
        map.put("name", "Wayfreem");
        map.put("age", "23");
        map.put("qq", "5234XXXX");
        
        //添加一個 user 的 key, value 爲 map 
        jedis.hmset("user", map);
        
        //獲取對應key下的value,用數組返回
        List<String> rsmap = jedis.hmget("user", "name", "age", "qq");
        System.out.println(rsmap);
        
        // 刪除map中的某個鍵值, 第一個參數是 map(如今的user),第二個參數是 map 中的 key
        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

        //循環出全部的key user下面的全部的 K-V
        Iterator<String> iter = jedis.hkeys("user").iterator();
        while (iter.hasNext()) {
            String key = iter.next();
            System.out.println(key + ":" + jedis.hmget("user", key));
        }
    }
    
    
    /**
     * list操做
     * 添加數據 使用 lpush 或者 rpush
     * 獲取數據 使用 lrange 是按照必定的範圍獲取
     */
    public void listOperator() {
        //刪除指定的key
        jedis.del("framework");
        
        System.out.println(jedis.lrange("framework", 0, -1));    //返回值爲 [] 由於沒有數據
        
        /*    Redis Lpush 命令將一個或多個值插入到列表頭部。
         *  若是 key 不存在,一個空列表會被建立並執行 LPUSH 操做。
         *  當 key 存在但不是列表類型時,返回一個錯誤。
         */
        // 先向key framework中存放三條數據
        jedis.lpush("framework", "angular");
        jedis.lpush("framework", "vue");
        jedis.lpush("framework", "react");
        
        // 再取出全部數據jedis.lrange是按範圍取出,
        // 第一個是key,第二個是起始位置,第三個是結束位置,jedis.llen獲取長度 -1表示取得全部
        System.out.println(jedis.lrange("framework", 0, -1));

        /*
         * Redis RPUSH命令插入全部指定的值,在存儲在列表的key尾部。
         * 若是鍵不存在,則執行壓棧操做以前建立的空列表。
         * 當key持有的值不是列表,則返回一個錯誤。
         */
        jedis.del("framework");
        jedis.rpush("framework", "angular");
        jedis.rpush("framework", "vue");
        jedis.rpush("framework", "react");
        System.out.println(jedis.lrange("framework", 0, -1));
    }
    
    public static void main(String[] args) {
        //聲明當前類
        RedisStudy rs = new RedisStudy();
        rs.getJedis();
        
        rs.listOperator();
    }
}

Rdies 教程的中文網:http://www.redis.net.cn/tutor...vue

Rdies 官網:https://redis.io/java

Java基礎知識整理之操做Redis(一)
Java基礎知識整理之操做Redis(二)react

相關文章
相關標籤/搜索