快速入門Redis -- JavaApi操作Redis(全網最詳細)

  在日常的工作學習中需要操作Redis,JavaApi操作Redis是一個必不可少的技術那麼我們直接進入正題

 目錄

         1.創建maven項目導入相應的jar包

         2.創建初始化方法

         3.操作Redis字符串類型

         4.操作Redis Hash類型

         5.操作Redis list類型

         6.操作Redis set類型

         7.關閉資源


1.創建maven項目導入相應的jar包

   <dependencies>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.14.3</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>7.1.0</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <!--    <verbal>true</verbal>-->
                </configuration>
            </plugin>
        </plugins>
    </build>

2.創建初始化方法

    // 實例連接池
    private JedisPool pool;

    /**
     * 初始化操作
     */
    @BeforeTest
    public void init() {
        pool = new JedisPool("node01", 6379);
    }

3.操作Redis字符串類型

    /**
     * 對字符串的操作
     */
//    @Test
    public void str() {
        // 創建連接對象
        Jedis resource = pool.getResource();
        // 添加
        resource.set("str01", "張三");
        // 查詢
        String str01 = resource.get("str01");
        System.out.println("查詢str01的結果\t" + str01);
        //添加多個
        resource.mset("str02", "李四", "str03", "1");
        // 查詢多個
        List<String> str02 = resource.mget("str02", "str03");
        System.out.println("查詢str01 str02的結果\t" + str02);
        // 設置過期時間
        resource.setex("hello", 10, "hello");
        // key 存在是添加 成功返回1  失敗返回 0
        System.out.println(resource.setnx("hello", "hello"));
        // 查詢部分 startOffset開始的索引 endOffset 結束的索引  hell
        System.out.println("查詢hello\t" + resource.getrange("hello", 0, 3));
        //查詢長讀 輸入key
        System.out.println("查詢hello的長度\t" + resource.strlen("hello"));
        // 追加
        resource.append("hello", "append");
        // 替換 key :操作的的key   offset:從索引幾開始替換  value:替換的內容
        resource.setrange("hello", 0, "AAA");
        System.out.println("查詢hello\t" + resource.get("hello"));
        // 累加1
        resource.incr("str03");
        System.out.println("str03加1的結果\t" + resource.get("str03"));
        // 設置累加N
        resource.incrBy("str03", 20);
        System.out.println("查詢str03加20後的結果\t" + resource.get("str03"));
        // 減1
        resource.decr("str03");
        System.out.println("查詢str03減1的結果\t" + resource.get("str03"));
        // 減N
        resource.decrBy("str03", 10);
        System.out.println("查詢str03減10的結果\t" + resource.get("str03"));
    }

4.操作Redis Hash類型

    /**
     * 對 hash操作
     */
//    @Test
    public void hash() {
        // 獲取連接對象
        Jedis resource = pool.getResource();
        // 添加數據
        resource.hset("hkey01", "name1", "李四");
        resource.hset("hkey02", "name2", "張三");
        //不存在是添加
        resource.hsetnx("hkey02", "name2", "趙劉");
        // 一次性設置多個值
        Map<String, String> hash = new HashMap<>();
        hash.put("name", "zhangsan");
        hash.put("age", "18");
        hash.put("sex", "1");
        resource.hmset("hkey03", hash);
        // 查詢hkey02
        System.out.println("查詢hkey02 name2\t" + resource.hget("hkey02", "name2"));
        // 查詢是否存在 hkey02中的name2 存在返回true
        System.out.println("判斷hkey02中的name2是否存在\t" + resource.hexists("hkey02", "name2"));
        // 查詢 hkey03 下的所有值
        System.out.println("hkey03的所有的值\t" + resource.hgetAll("hkey03"));
        // 查詢 hkey03的所有字段
        System.out.println("hkey03的字段\t" + resource.hkeys("hkey03"));
        // 查詢hkey03的數量
        System.out.println("查詢hkey03的數量\t" + resource.hlen("hkey03"));
        // 查詢hkey03的多個值 name age
        System.out.println("查詢hkey03的多個值\t" + resource.hmget("hkey03", "name", "age"));
        // 刪除數據
        resource.hdel("hkey03", "sex");
        // 累加(1-N) hkey03中的age 10
        resource.hincrBy("hkey03", "age", 10);
        System.out.println("hkey03中的age結果\t" + resource.hget("hkey03", "age"));
    }

5.操作Redis list類型

    /**
     * 對list 操作
     */
//    @Test
    public void list() {
        // 獲取連接對象
        Jedis resource = pool.getResource();
        // 可以添加一個或多個
        resource.lpush("listkey", "zhangsan", "lisi");
        // 插入頭部
        resource.lpushx("listkey", "wangwu");
        //右邊插入
        resource.rpush("listkey", "AA", "BB");
        // 插入尾部
        resource.rpushx("listkey", "CC");
        // 插入某個數據之前
        resource.linsert("listkey", BinaryClient.LIST_POSITION.BEFORE, "AA", "aa");
        // 插入某個數據之後
        resource.linsert("listkey", BinaryClient.LIST_POSITION.AFTER, "CC", "DD");
        // 查詢listkeyd的所有數據 -1 默認查詢所有數據
        System.out.println("查詢listkey的所有數據\t" + resource.lrange("listkey", 0, -1));
        // 通過索引查詢
        System.out.println("通過索引查詢\t" + resource.lindex("listkey", 0));
        // 查詢listkey的長度
        System.out.println("查詢listkey的數據長度\t" + resource.llen("listkey"));
        // 數據修減 保留 0 到 3 的索引
        resource.ltrim("listkey", 0, 3);
        System.out.println("查詢listkey修減後的數據\t" + resource.lrange("listkey", 0, -1));
        // 移除listkey的第一個數據
        resource.lpop("listkey");
        //移除listkey的最後一個數據
        resource.rpop("listkey");
        System.out.println("查詢listke移除第一個和最後一個的數據\t" + resource.lrange("listkey", 0, -1));
        // 移除最後一給數據保存到另一個列表
        resource.rpoplpush("listkey", "listkey");
        System.out.println("查詢listkey數據\t" + resource.lrange("listkey", 0, -1));
    }

6.操作Redis set類型

/**
     * 對set 操作
     */
//    @Test
    public void set() {
        // 獲取連接對象
        Jedis resource = pool.getResource();
        // 向集合添加一個或多個
        resource.sadd("skey1", "zhnangsan", "lisi");
        resource.sadd("skey2", "wangwu", "lisi");
        // 查詢結合的所有數據
        System.out.println("查詢skey1的數據:" + resource.smembers("skey1"));
        // 查詢數據總量
        System.out.println("查詢skey1的數據總量:" + resource.scard("skey1"));
        // 查詢差值
        System.out.println("查詢skey1和skey2的差值" + resource.sdiff("skey1", "skey2"));
        // 查詢差值寫入到新的集合
        resource.sdiffstore("skey3", "skey1", "skey2");
        // 查詢交集
        System.out.println(resource.sinter("skey1", "skey2"));
        // 查詢交集寫入到新的集合
        resource.sinterstore("skey4", "skey1", "skey2");
        // 查詢某一個數據是否在集合中
        System.out.println("查詢zhnangsan是否在skey1\t" + resource.sismember("skey1", "zhnangsan"));
        // 返回集合隨機N個數據
        System.out.println("返回隨機skey1\t" + resource.srandmember("skey1", 1));
        // 查詢並集
        System.out.println("查詢skey1與skey2的並集\t" + resource.sunion("skey1", "skey2"));
        // 查詢並集寫入到一個新的結合
        resource.sunionstore("skey5", "skey1", "skey2");
        //將數據在一個集合移動到另一個集合
        resource.smove("skey1", "skey2", "zhangsan");
        // 移除結果中的某個數據
        resource.srem("skey2", "skey2", "zhangsan");
    }

7.關閉資源

    /**
     * 關閉資源
     */
    @AfterTest
    public void close() {
        pool.close();
    }

在這裏對Redis JavaApi的操作就結束了,喜歡的話點贊,加個關注

1

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