list设置值(头部):lpush list one

list设置值(尾部):**rpush ** list one

list获取值:lrange list 0 -1

list获取指定范围的值:lrange list 0 1

127.0.0.1:6379> lpush list one #头部插入一个值
(integer) 1
127.0.0.1:6379> lpush list two #头部插入一个值
(integer) 2
127.0.0.1:6379> lpush list three #头部插入一个值
(integer) 3
127.0.0.1:6379> lrange list 0 -1 #获取所有值
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> lrange list 0 1 #获取0 1的值
1) "three"
2) "two"
127.0.0.1:6379> rpush list four #尾部插入一个值
(integer) 4
127.0.0.1:6379> lrange list 0 -1 #查看刚才插入的值
1) "three"
2) "two"
3) "one"
4) "four"

list移除一个值(头部):lpop list

list移除一个值(尾部):rpop list

127.0.0.1:6379> lrange list 0 -1 #查看list元素
1) "three"
2) "two"
3) "one"
4) "four"
127.0.0.1:6379> lpop list #移除头部元素
"three"
127.0.0.1:6379> lrange list 0 -1 #第一个元素被移除
1) "two"
2) "one"
3) "four"
127.0.0.1:6379> rpop list #移除尾部元素
"four"
127.0.0.1:6379> lrange list 0 -1 #最后一个元素被移除
1) "two"
2) "one"

list移除指定的值(几个):lrem list 1 one

list移除指定的值(所有):lrem list 0 one

127.0.0.1:6379> lrange list 0 -1
1) "one"
2) "one"
3) "one"
4) "one"
5) "one"
6) "one"
7) "two"
8) "three"
127.0.0.1:6379> lrem list 1 one #移除一个one元素
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "one"
2) "one"
3) "one"
4) "one"
5) "one"
6) "two"
7) "three"
127.0.0.1:6379> lrem list 0 one #移除所有的one元素
(integer) 5
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "three"

通过下标获取值:lindex list 0

127.0.0.1:6379> lrange list 0 -1 #查看元素
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> lindex list 0 #获取下标为0的元素
"one"
127.0.0.1:6379> lindex list 2 #获取下标为2的元素
"three"

查看list长度:llen list

127.0.0.1:6379> lrange list 0 -1
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> llen list #查看长度
(integer) 3

修剪list:ltrim list 0 2

127.0.0.1:6379> lrange list 0 -1
1) "four"
2) "three"
3) "two"
4) "one"
127.0.0.1:6379> ltrim list 0 2 #只保留0 1 2元素,list实际上已经改变了
OK
127.0.0.1:6379> lrange list 0 -1
1) "four"
2) "three"
3) "two"

移除最后一个元素并添加到一个新的list:rpoplpush mylist otherlist

127.0.0.1:6379> lrange mylist 0 -1
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> rpoplpush mylist otherlist #移除mylist的最后一个元素并添加到otherlist
"three"
127.0.0.1:6379> lrange mylist 0 -1 #mylist已经移除了最后一个元素
1) "one"
2) "two"
127.0.0.1:6379> lrange otherlist 0 -1 #otherlist添加了一个元素
1) "three"

更新一个值(list必须要存在,下标元素必须要存在):lset mylist 0 one

127.0.0.1:6379> lset mylist 0 one #如果list不存在会报错
(error) ERR no such key
127.0.0.1:6379> lpush mylist one #创建mylist
(integer) 1
127.0.0.1:6379> lpush mylist two
(integer) 2
127.0.0.1:6379> lrange mylist 0 -1 #查看mylist元素
1) "two"
2) "one"
127.0.0.1:6379> lset mylist 0 heihei #更新下标为0的元素值
OK
127.0.0.1:6379> lrange mylist 0 -1 #修改成功
1) "heihei"
2) "one"
127.0.0.1:6379> lset mylist 3 haha #更新不存在的下标元素 失败
(error) ERR index out of range

插入一个值(在某个元素前面):linsert mylist before "world" "new"

插入一个值(在某个元素后面):linsert mylist after"world" "new"

127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "world"
127.0.0.1:6379> linsert mylist before "world" "new" #在wolrd前面插入new
(integer) 3
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "new"
3) "world"
127.0.0.1:6379> linsert mylist after "world" "old" #在wolrd后面插入old
(integer) 4
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "new"
3) "world"
4) "old"

redis: List列表类型(四)的更多相关文章

  1. redis数据类型-列表类型

    列表类型 列表类型(list)可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个片段. 列表类型内部是使用双向链表(double linked list)实现的,所以向 ...

  2. Redis之列表类型命令

    Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素到列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 - 1 个元素 (4294967 ...

  3. redis之(六)redis的列表类型的命令

    [一]向列表两端添加元素 -->命令:LPUSH key value [value ...] -->向列表的左侧添加元素,返回值表示增加元素后列表的长度 -->命令:RPUSH ke ...

  4. redis:list列表类型的操作

    1. list列表类型的操作 1.1. lpush/rpush key value [value ...] 链表的头部(左侧)或尾部(右侧)插入值 语法:lpush key value [value ...

  5. Redis散列表类型

    散列类型(hash)的键值也是一种字典结构,其存储了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他的数据类型. 一个散列类型键可以包含至多2^32 -1个字段. 命令 赋值 HSE ...

  6. Redis常用命令入门3:列表类型

    列表类型 列表类型也是一个我们很长要用到的一个类型.比如我们发博客,要用到博客列表.如果没有列表我们就只能遍历键来获取所有文章或一部分文章了,这个语法是keys,但是这个命令需要遍历数据库中的所有键, ...

  7. redis之(四)redis的字符串类型的命令

    [一]获得符合规则的键名列表  -->命令  keys [pattern] -->keys命令需要遍历Redis中所有的键,当键的数量比较多会影响性能,生产环境不建议用 -->pat ...

  8. Redis从基础命令到实战之列表类型(List)

    经过上一篇基于Redis散列类型的改造后,实战练习中的商品管理已经具备了增加.修改整体.修改部分属性和分页查询功能,但仍然不支持删除商品的功能.这是因为商品总数是以一个自增数字记录的,且关联了新商品k ...

  9. redis 的使用 ( list列表类型操作)

    list 数据类型 列表类型 list 类型是一个双向操作 从链表的头部或者尾部添加删除元素 list 既可以用作栈 也可以用作队列 list 链表的类型应用场合: 获取最新的 10 个用户的信息 s ...

  10. Redis自学笔记:3.4入门-列表类型

    3.4列表类型 3.4.1介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者 获得列表的某一片段. 优点:内部使用的是双向链表,所以向列表两端添加元素的时间复杂度为O(1 ...

随机推荐

  1. HTML5调用笔记本或手机摄像头

    网上找了些文章测试了下,到现在为止还是很多浏览器不支持,所以也没有什么实用价值啊. 以下代码在笔记本电脑浏览器chrome25,irefox19上测试通过(FF需要在地址栏输入about:config ...

  2. node.js初步

    Node.js介绍 Node.js 诞生于2009年,Node.js采用C++语言编写而成,是 一个Javascript的运行环境.Node.js 是一个基于 Chrome V8 引擎的 JavaSc ...

  3. 福利,OpenCV最新中文版官方教程来了

    OpenCV 中文版官方教程来了. OpenCV是计算机视觉中经典的专用库,然而其中文版官方教程久久不来.近日,一款最新OpenCV4.1 版本的完整中文版官方教程出炉,读者朋友可以更好的学习了解Op ...

  4. 在Ngnix中配置支持Websocket

    使用SignalR实现Websocket实时数据传输时,前后端各自实现编码后,无法将Websocket调试通过.沮丧之时,负责配置网络代理的同事说,网络访问这块使用了Ngnix代理设置,可能是造成We ...

  5. Selenium系列(二十) - PageObject模式的详细介绍

    如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...

  6. Java复合优先于继承

    复合优于继承 继承打破了封装性(子类依赖父类中特定功能的实现细节) 合理的使用继承的情况: 在包内使用 父类专门为继承为设计,并且有很好的文档说明,存在is-a关系 只有当子类真正是父类的子类型时,才 ...

  7. linux中的文本处理命令

    一.wc :统计文本的行数.字符数. -l:只显示行数 -d:只显示单词数 -c:只显示字符数 二.tr:转换字符或者删除字符 -d:删除字符 三.cut -d:指定分隔符 -f:指定要显示的字段 例 ...

  8. Python常用模块之json

    本章节我们将为大家介绍如何使用 Python 语言来编码和解码 JSON 对象. JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写. SO ...

  9. Light of future-冲刺Day 5

    目录 1.SCRUM部分: 每个成员进度 SCRUM 会议的照片 签入记录 代码运行截图 用户浏览界面 订单详情界面 管理员浏览界面 新增后台界面 2.PM 报告: 时间表 燃尽图 任务总量变化曲线 ...

  10. Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with '#' will be ignored, and an empty messa

    1.git提交的时候遇到: # Please enter the commit message for your changes. Lines starting with '#' will be ig ...