lists类型

给你个图;'

lists类型以及操作
List是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作中key理解为链表的名字。Redis的list类型其实就是每一个子元素都是String类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列。

操作:
lpush
从头部添加字符串元素

  1. 127.0.0.1:> lpush list1 one
  2. (integer) //数字表示list的长度
  3. 127.0.0.1:> lpush list1 two
  4. (integer)
  5. 127.0.0.1:> lrange list1 - // 0表示开始展示的元素所在的下标,1表示最后展示的元素所在位置的下标,最后就是-1.0在头的开始位置
  6. ) "two"
  7. ) "one"
  8. 127.0.0.1:> lpush list1 three four
  9. (integer)

rpush
在key对应的list尾部添加字符串元素

  1. 127.0.0.1:> rpush list01 hello
  2. (integer)
  3. 127.0.0.1:> rpush list01 world
  4. (integer)
  5. 127.0.0.1:> lrange list01 -
  6. ) "hello"
  7. ) "world"

linsert
向key对应的list的指定元素前或后插入元素

  1. 127.0.0.1:> linsert list01 before "world" java
  2. (integer)
  3. 127.0.0.1:> lrange list01 -
  4. ) "hello"
  5. ) "java"
  6. ) "world"
  7. 127.0.0.1:> linsert list01 after "world" "jiangxi"
  8. (integer)
  9. 127.0.0.1:> lrange list01 -
  10. ) "hello"
  11. ) "java"
  12. ) "world"
  13. ) "jiangxi"

lrange
查看指定下标范围的对应list中的值

  1. 127.0.0.1:> lrange list01 -
  2. ) "hello"
  3. ) "java"
  4. ) "world"
  5. ) "jiangxi"
  6. 127.0.0.1:> lrange list01
  7. ) "java"
  8. ) "world"

Lset
设置list中指定下标的值

  1. 127.0.0.1:> lset list01 "hi"
  2. OK
  3. 127.0.0.1:> lrange list01 -
  4. ) "hi"
  5. ) "java"
  6. ) "world"
  7. ) "jiangxi"
  8. 127.0.0.1:>

lrem
从key对应的list中删除n个和value相同的元素(n<0从尾删除,n=0全部删除)

  1. 127.0.0.1:> lpush list01 hello world hello world world hello hi my my hello hello
  2. (integer)
  3. 127.0.0.1:> lrange list01 -
  4. ) "hello"
  5. ) "hello"
  6. ) "my"
  7. ) "my"
  8. ) "hi"
  9. ) "hello"
  10. ) "world"
  11. ) "world"
  12. ) "hello"
  13. ) "world"
  14. ) "hello"
  15. 127.0.0.1:> lrem list01 "hello"
  16. (integer)
  17. 127.0.0.1:> lrange list01 -
  18. ) "hello"
  19. ) "my"
  20. ) "my"
  21. ) "hi"
  22. ) "hello"
  23. ) "world"
  24. ) "world"
  25. ) "hello"
  26. ) "world"
  27. ) "hello"
  28. 127.0.0.1:> lrem list01 - "hello"
  29. (integer)
  30. 127.0.0.1:> lrange list01 -
  31. ) "hello"
  32. ) "my"
  33. ) "my"
  34. ) "hi"
  35. ) "hello"
  36. ) "world"
  37. ) "world"
  38. ) "hello"
  39. ) "world"
  40. 127.0.0.1:> lrem list01 "hello"
  41. (integer)
  42. 127.0.0.1:> lrange list01 -
  43. ) "my"
  44. ) "my"
  45. ) "hi"
  46. ) "world"
  47. ) "world"
  48. ) "world"
  49. 127.0.0.1:>

ltrim
保留指定key的值范围内的数据,其他的删除

  1. 127.0.0.1:> lrange list01 -
  2. ) "my"
  3. ) "my"
  4. ) "hi"
  5. ) "world"
  6. ) "world"
  7. ) "world"
  8. 127.0.0.1:> ltrim list01
  9. OK
  10. 127.0.0.1:> lrange list01 -
  11. ) "my"
  12. ) "hi"

lpop
从list的头部删除元素,并返回删除元素

  1. 127.0.0.1:> lrange list01 -
  2. ) "my"
  3. ) "hi"
  4. 127.0.0.1:> lpop list01
  5. "my"
  6. 127.0.0.1:> lrange list01 -
  7. ) "hi"

rpop
从list的尾部删除元素,并返回删除元素

  1. 127.0.0.1:> lrange list01 -
  2. ) "my"
  3. ) "name"
  4. ) "is"
  5. 127.0.0.1:> rpop list01
  6. "is"
  7. 127.0.0.1:> lrange list01 -
  8. ) "my"
  9. ) "name"
  10. 127.0.0.1:>

rpoplpush
从第一个list的尾部移除元素并添加到第二个list的头部

  1. 127.0.0.1:> lrange list01 -
  2. ) "my"
  3. ) "name"
  4. ) "is"
  5. ) "guo"
  6. ) "daxia"
  7. 127.0.0.1:> lpush list02 i like java
  8. (integer)
  9. 127.0.0.1:> lrange list02 -
  10. ) "java"
  11. ) "like"
  12. ) "i"
  13. 127.0.0.1:> rpoplpush list01 list02
  14. "daxia"
  15. 127.0.0.1:> lrange list01 -
  16. ) "my"
  17. ) "name"
  18. ) "is"
  19. ) "guo"
  20. 127.0.0.1:> lrange list02 -
  21. ) "daxia"
  22. ) "java"
  23. ) "like"
  24. ) "i"

lindex
返回名称为key的list中index位置的元素

  1. 127.0.0.1:> lrange list01 -
  2. ) "my"
  3. ) "name"
  4. ) "is"
  5. ) "guo"
  6. ) "daxia"
  7. 127.0.0.1:> lindex list01
  8. (nil)
  9. 127.0.0.1:> lindex list01
  10. "daxia"

llen
返回key对应的list的长度

  1. 127.0.0.1:> lrange list01 -
  2. ) "my"
  3. ) "name"
  4. ) "is"
  5. ) "guo"
  6. ) "daxia"
  7. 127.0.0.1:> llen list01
  8. (integer)

redis的list类型以及其操作的更多相关文章

  1. redis的Hash类型以及其操作

    hashes类型 hashes类型及操作Redis hash是一个string类型的field和value的映射表.它的添加.删除操作都是0(1)(平均).hash特别适合用于存储对象.相较于将对象的 ...

  2. redis的String类型以及其操作

    Redis的数据类型 String类型以及操作 String是最简单的数据类型,一个key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比如jpg图片或 ...

  3. 直接在安装了redis的Linux机器上操作redis数据存储类型--对Sorted-Sets操作

    一.概述: Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中.它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score ...

  4. 第二百九十七节,python操作redis缓存-List类型,可以理解为列表

    python操作redis缓存-List类型,可以理解为列表,是可以有重复元素的列表 List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图: lpush(name ...

  5. 第二百九十五节,python操作redis缓存-字符串类型

    python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...

  6. 三:redis的List类型相关操作

    </pre><pre name="code" class="php" style="font-size: 14px;"&g ...

  7. 直接在安装了redis的Linux机器上操作redis数据存储类型--String类型

    一.概述: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型 ...

  8. 最全的Java操作Redis的工具类,使用StringRedisTemplate实现,封装了对Redis五种基本类型的各种操作!

    转载自:https://github.com/whvcse/RedisUtil 代码 ProtoStuffSerializerUtil.java import java.io.ByteArrayInp ...

  9. [redis] redis 对string类型数据操作

    package com.xwolf.java.redis; import org.junit.Before; import org.junit.Test; import redis.clients.j ...

随机推荐

  1. centos升级vim

    vim7爆出严重安全漏洞,升级到vim8,过程如下: yum remove vim -y yum install ncurses-devel -y 如果失败,提示unknown host apt.sw ...

  2. 【Beginning Python】抽象(未完)

    [懒惰即是美德] 抽象意味着良好的可读性:说明你在努力做什么,而不是给出你正在如何做的细节. [抽象和结构] 程序应该是非常抽象的,就像“下载网页.计算频率.打印每个单词的频率”一样易懂.翻译成程序就 ...

  3. OpenStack之Glance模块

    一.Glance服务 1.Glance架构 Glance架构是一个典型的CS架构,提供的也是标准的Rest接口,各个layer分层也是很清楚的. 2.Glance服务 Glance是OpenStack ...

  4. Redis 数据结构-字符串源码分析

    相关文章 Redis 初探-安装与使用 Redis常用指令 本文将从以下几个部分进行介绍 1.前言 2.常用命令 3.字符串结构 4.字符串实现 5.命令是如果操作字符串的 前言 平时在使用 Redi ...

  5. Hive中排序和聚集

    //五种子句是有严格顺序的: where → group by → having → order by → limit ; //distinct关键字返回唯一不同的值(返回age和id均不相同的记录) ...

  6. Mac开发配置手册

    系统设置 在任何的操作系统中,首先你需要做一件事就是更新系统,点击窗口左上角的  > 关于本机 > 软件更新.此外,如果这是一部新的电脑,你还需要到系统设置进行一些适当调整.如何调整,取 ...

  7. openwrt下如何只编译uboot

    答:如使用以下命令编译nxp的layerscape系列芯片相关的uboot: make package/boot/uboot-layerscape/prepare make package/boot/ ...

  8. Apache Kafka之设计

    转自: http://blog.csdn.net/kevin_hx001/article/details/9413565        http://kafka.apache.org/design.h ...

  9. apache——(OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 : AH00072: make_sock: could not bind to address [::]:443

    问题:命令行运行httpd.exe时报错 (OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次.  : AH00072: make_sock: could not bind t ...

  10. springMVC数据回显

    1.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&qu ...