redis實戰三、jedis結合redis數據結構小練

回想redis的5種數據結構,hash,list,set ,sortedset,string.下面是jedis對這5種數據結構的簡單練習。
基於maven項目:

1、在pom.xml文件中引入jar包:
        <dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-pool2</artifactId>
			<version>2.4.2</version>
		</dependency>
		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
			<version>2.9.0</version>
		</dependency>
2、新建一個類:
 // jedis裏hash數據結構存取數據
    @Test
    public void testHash() {
        //創立連接
        Jedis jedis = new Jedis("localhost");
        //操作
        // 給hash集合賦全部的值
        jedis.hset("myhash", "username", "lilei");
        jedis.hset("myhash", "age", "18");
        jedis.hset("myhash", "sex", "girl");

        //取單個值
        String name = jedis.hget("myhash", "username");
        System.out.println(name);

        Map<String, String> myhash = jedis.hgetAll("myhash");
        Set<String> set = myhash.keySet();
        for (String key : set) {
            System.out.println(key + ":" + myhash.get(key));
        }
        //關閉連接
        jedis.close();
    }

    // jedis裏list數據結構存取數據,允許有重複元素
    @Test
    public void testList() {
        //創立連接
        Jedis jedis = new Jedis("localhost");
        //操作
        jedis.del("mylist");
        //存儲
        jedis.lpush("mylist", "b", "b", "c", "d");
        jedis.rpush("mylist", "d", "e", "f");

        //範圍獲取
        List<String> list = jedis.lrange("mylist", 0, -1);
        System.out.println(list);

        //彈出,從list裏刪除一個元素,並返回刪除元素
        System.out.println(jedis.lpop("mylist") + "," + jedis.rpop("mylist"));

        //範圍獲取
        list = jedis.lrange("mylist", 0, -1);
        System.out.println(list);

        //關閉連接
        jedis.close();
    }

    // jedis裏set數據結構存取數據,不允許有重複元素
    @Test
    public void testSet() {
        //創立連接
        Jedis jedis = new Jedis("localhost");
        //操作
        jedis.del("myset");
        //存儲
        jedis.sadd("myset", "a", "b", "b", "c", "d");

        //範圍獲取
        Set<String> list = jedis.smembers("myset");
        System.out.println(list);

        //關閉連接
        jedis.close();
    }

    // jedis裏SortedSet數據結構存取數據,不允許有重複元素,且有序
    @Test
    public void testSortedSet() {
        //創立連接
        Jedis jedis = new Jedis("localhost");
        //操作
        jedis.del("mysortedSet");
        jedis.del("mysortedset");

        //存儲
        jedis.zadd("mysortedSet", 100, "wq");
        jedis.zadd("mysortedSet", 99, "wjt");
        jedis.zadd("mysortedSet", 88, "zst");
        jedis.zadd("mysortedSet", 79, "ll");

        //範圍獲取
        Set<Tuple> list = jedis.zrangeWithScores("mysortedSet", 0, -1);
        System.out.println(list.toArray());

        //關閉連接
        jedis.close();
    }
// jedis裏String數據結構存取數據
    @Test
    public void testString() {
        //創立連接
        Jedis jedis = new Jedis("localhost");
        //操作
        jedis.set("username", "123wq");
        String username = jedis.get("username");
        System.out.println(username);

        //可以使用setex() 方法存儲可以指定過期時間的key  value
        //將鍵值對activecode hello存入redis,並且20s後自動刪除該鍵值對
        jedis.setex("activecode", 30, "hello");
        //關閉連接
        jedis.close();
    }
3、分別運行上面方法,比如運行testString測試的方法前,先打開redis服務器和客戶端,在redis安裝目錄下,分別雙擊redis-server.exe 和 redis-cli.exe,運行該測試方法後,在客戶端輸入 keys * ,然後獲取代碼中存儲的鍵,得到的值和代碼中給的值一樣。
127.0.0.1:6379> keys *  
1) "activecode"
2) "username"
127.0.0.1:6379> get activecode   -- 剛開始,能夠獲取該值
"hello"
127.0.0.1:6379> get username
"123wq"
127.0.0.1:6379> get activecode   -- 30秒後,再次獲取,該值爲空,代碼中所寫即爲該含義
(nil)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章