通过 Java 操作 redis -- list 列表基本命令

发布于:2024-05-09 ⋅ 阅读:(34) ⋅ 点赞:(0)

目录

使用命令 lpush,lrange,rpush

使用命令 lpop 和 rpop

使用命令 blpop,brpop

使用命令 llen


关于 redis list 列表类型的相关命令推荐看Redis - list 列表

要想通过 Java 操作 redis,首先要连接上 redis 服务器,推荐看通过 Java 操作 redis -- 连接 redis

        本博客只介绍了一小部分常用的命令,其他的命令根据上面推荐的博客也能很简单的使用出来(推荐先看上面推荐的博客,有 redis 的原生命令)

使用命令 lpush,lrange,rpush

/**
     * 使用命令 lpush,lrange,rpush
     * */
    public static void test1(Jedis jedis){
        //清除 redis 所有数据库中的所有数据
        jedis.flushAll();

        //向 redis 中插入类型为 list 的键值对(向左依次插入数据),返回值为插入该数据后列表中的数据个数
        long result1=jedis.lpush("key1","111","222","333");
        System.out.println("result1:"+result1);

        //获取列表中指定范围内的数据
        List<String> result2=jedis.lrange("key1",0,-1);
        System.out.println("result2:"+result2);

        //向 redis 中插入类型为 list 的键值对(向右依次插入数据),返回值为插入该数据后列表中的数据个数
        long result3=jedis.rpush("key2","111","222","333");
        System.out.println("result3:"+result3);

        //获取列表中指定范围内的数据
        List<String> result4=jedis.lrange("key2",0,-1);
        System.out.println("result4:"+result4);
    }

运行结果:

使用命令 lpop 和 rpop

    /**
     * 使用命令 lpop 和 rpop
     * */
    public static void test2(Jedis jedis){
        //清除 redis 所有数据库中的所有数据
        jedis.flushAll();

        //向 redis 中插入类型为 list 的键值对(向右依次插入数据),返回值为插入该数据后列表中的数据个数
        jedis.rpush("key1","111","222","333");
        List<String> result1=jedis.lrange("key1",0,-1);
        System.out.println("result1:"+result1);

        //从左边弹出 key1 列表中的 1 个数据
        String result2=jedis.lpop("key1");
        System.out.println("result2:"+result2);

        //从右边弹出 key1 列表中的 2 个数据
        String result3=jedis.rpop("key1");
        System.out.println("result3:"+result3);
    }

运行结果:

使用命令 blpop,brpop

   /**
     * 使用 blpop,brpop
     * brpop 和 blpop 几乎相同,所以不再赘述
     * */
    public static void test3(Jedis jedis){
        //清除 redis 所有数据库中的所有数据
        jedis.flushAll();

        //监视列表 key1 ,当列表中有数据时表现和 lpop 相同,当没有数据时进入阻塞,阻塞 2 秒
        //返回值是列表但只有两个元素,第一个元素代表从哪个 key 中得到了数据,第二个元素代表得到的数据是什么
        List<String> result1=jedis.blpop(2,"key1");
        System.out.println("result1:"+result1);

        jedis.rpush("key2","111");
        //监视列表 key2 和 key3 ,当两个列表都没有数据时进入阻塞,阻塞 2 秒(某个列表有数据就能获取到)
        List<String> result2=jedis.blpop(2,"key2","key3");
        System.out.println("result2:"+result2);
    }

运行结果:

使用命令 llen

    /**
     * 使用 llen
     * */
    public static void test4(Jedis jedis){
        //清除 redis 所有数据库中的所有数据
        jedis.flushAll();

        jedis.rpush("key1","111","222","333");
        List<String> result1=jedis.lrange("key1",0,-1);
        System.out.println("result1:"+result1);

        //获取列表 key1 中的元素个数
        long result2=jedis.llen("key1");
        System.out.println("result2:"+result2);
    }

运行结果:


网站公告

今日签到

点亮在社区的每一天
去签到