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)

猜你喜欢

转载自blog.csdn.net/qq_17033579/article/details/88642792