redis中List数据类型最全常用命令

一、引言

都 2021 年了 ~

竟然还有人不知道 redis 的list类型常用命令 ~

二、应用场景

  • list类型是用来存储多个有序的字符串的,支持存储2^32次方-1个元素。

  • redis可以从链表的两端进行插入(pubsh)和弹出(pop)元素,充当队列或者栈

  • 支持读取指定范围的元素集

  • 读取指定下标的元素等

三、List数据类型常用命令 

package com.tianwang.springboot_porpdd.jedis;

import redis.clients.jedis.BinaryClient;
import redis.clients.jedis.Jedis;

/**
 * @author WangYan
 * @date 2021/9/16 11:10
 * List 类型基本命令
 */
public class TestList {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("localhost",6379);
        
        // 所有的list命令都是以 l开头的
        jedis.flushDB();
        // 将一个值或者多个值,插入列表的头部 (左)
        jedis.lpush("list","v1","v2","v3");

        // 根据key,下标获取获取全部list  可以看出这个集合是先进后出  [v3, v2, v1]
        System.out.println(jedis.lrange("list", 0, -1));
        // [v3, v2]
        System.out.println(jedis.lrange("list", 0, 1));

        // 将一个值或者多个值,插入列表的尾部 (右)
        jedis.flushDB();
        jedis.rpush("list","v1","v2","v3");
        // [v1, v2, v3]
        System.out.println(jedis.lrange("list", 0, -1));

        // 移除list的第一个元素
        jedis.lpop("list");
        System.out.println(jedis.lrange("list", 0, -1));
        // 移除list的最后一个元素
        jedis.rpop("list");
        System.out.println(jedis.lrange("list", 0, -1));

        // list通过下标获取值  从 0 开始
        jedis.lindex("list",0);
        // list的长度
        jedis.llen("list");
        jedis.flushDB();

        // list移除指定的值
        jedis.rpush("list","v1","v1","v2","v3");
        jedis.lrem("list", 1, "v1");
        System.err.println(jedis.lrange("list",0,-1));
        jedis.flushDB();

        // list截取某一段 [hello]
        jedis.rpush("list","hello","v1","v2","v3");
        jedis.ltrim("list",0,0);
        System.err.println(jedis.lrange("list",0,-1));

        /**
         * 组合命令
         * rpoplpush
         * 移除list中的最后一个元素,将他移动到一个新的list集合中!
         */
        jedis.flushDB();
        jedis.rpush("list","hello1","hello2","hello3");
        System.out.println((jedis.lrange("list", 0, -1)));
        jedis.rpoplpush("list","mylist");
        System.err.println(jedis.lrange("mylist", 0, -1));

        /**
         * lset
         * 将列表中指定的值替换成另外一个值,更新操作 ! 如果下标不存在,就会更新报错 !
         */
        jedis.lset("mylist",0,"kkt");
        System.out.println(jedis.lrange("mylist", 0, 0));

        /**
         * linsert
         * 将某个元素插入到list集合中某个值的前面或者后面 !
         */
        jedis.flushDB();
        jedis.rpush("myList","wo","kkt");
        jedis.linsert("myList", BinaryClient.LIST_POSITION.BEFORE,"kkt","like");
        System.out.println(jedis.lrange("myList", 0, -1));
    }
}

四、总结

以上就是redis中List基本数据类型常用的命令,大家可自己上手亲测 ~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逸航不吃瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值