Redis的List是一个双向链表

LPUSH

作用:向列表左端添加元素

语法:LPUSH key value value...

从左到右逐个添加到左端,前面的先添加, 可以一次添加多个元素

RPUSH

作用:向列表右端添加元素

语法:RPUSH key value, value...

LPUSHX

作用: 向列表左端添加元素,只有key存在才可以添加

语法:LPUSH key value

一次只能添加一个元素

RPUSHX

作用: 向列表右端添加元素,只有key存在才可以添加

语法:RPUSH key value

一次只能添加一个元素

LPOP

作用:将列表左端的元素弹出

语法:LPOP key

RPOP

作用: 将列表右端的元素弹出

语法: RPOP key

不存在就nil

LLEN

作用:获得列表的长度

语法:LLEN key

不存在就返回0

LRANGE

作用: 获取列表片段

语法: LRANGE key start stop

包含最后的索引值

如果start比列表的长度还大,则返回空

LREM

作用:删除指定的值

语法: LREM key count value

count值由以下几类型:
count>0: 从列表的头部开始,向尾部搜索,移除与value相等的count个元素
count<0: 从列表的尾部开始,向头部搜索,移除与value相等的count个元素
count=0: 移除列表中全部的与count相等的值

LINDEX

作用:获得指定索引元素的值

语法: LINDEX key index

LSET

作用:设置指定索引的值

语法:LSET key index value

LTRIM

作用:只保留列表的片段

语法:LTRIM key start stop

当start大于列表长度,则被清空

LINSERT

作用:向列表插入元素

语法:LINSERT key BEFORE|AFTER pivot value

LINSERT key BEFORE a hello
向key这个列表中,a之前插入一个元素hello
成功返回列表的长度
如果a不存在,则返回-1
对空列表不可用,返回0

RPOPLPUSH

作用: 弹出右边元素,添加到左边,是一个原子操作, 返回弹出的元素

语法: RPOPLPUSH source destination

可以是同一个列表
source不存在时,返回nil

BLPOP

作用:BLPOP是LPOP的阻塞版本,将第一个不为空的列表弹出

语法:BLPOP key [key...] timeout

timeout为0表示无限期等待
如果列表为空,则会在timeout时间之内一直等待, 当列表被添加之后,会弹出此列表,返回阻塞时间
支持多客户端操作

Redis学习篇(四)之List类型及其操作的更多相关文章

  1. redis 学习(6)-- 集合类型

    redis 学习(6)-- 集合类型 set 结构 无序 无重复 集合间操作 set 集合内操作 命令 含义 sadd key memebr1 [member2...] 向集合中添加一个或多个成员 s ...

  2. redis 学习(5)-- 列表类型

    redis 学习(5)-- 列表类型 列表特点 有序.可以重复.左右两边插入弹出 索引相关知识 索引从左往右,从0开始逐个增大 0 1 2 3 4 5 索引从右往左,从-1开始逐个减小 -6 -5 - ...

  3. redis 学习(3)-- String 类型

    redis 学习(3)-- String 类型 String-结构 结构:Key-Value对 Value:可以是字符串.数字,也可以是二进制数组 限制:Value最大值为512MB String-常 ...

  4. redis学习教程四《管理、备份、客户端连接》

    redis学习教程四<管理.备份.客户端连接>  一:Redis服务器命令 Redis服务器命令 下表列出了与Redis服务器相关的一些基本命令. 序号 命令 说明 1 BGREWRITE ...

  5. redis学习 (key)键,Python操作redis 键 (二)

    # -*- coding: utf-8 -*- import redis #这个redis 连接不能用,请根据自己的需要修改 r =redis.Redis(host=") 1. delete ...

  6. spring 学习(四): spring 的 jdbcTemplate 操作

    spring 学习(四): spring 的 jdbcTemplate 操作 spring 针对 javaee 的每一层,都提供了相应的解决技术,jdbcTemplate 的主要操作在 dao 层. ...

  7. 分布式缓存技术redis学习(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  8. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  9. redis数据类型(四)list类型

    一.list类型 list是一个链表结构,可以理解为一个每个子元素都是 string 类型的双向链表. 主要功能是push.pop.获取一个范围的所有值等. 操作中key理解为链表的名字. 二.Lis ...

随机推荐

  1. 转【非容器化Jenkins连接Kubernetes】

    一.环境说明 OS系统版本:Ubuntu 18.04 TLS 软件版本:Jenkins 2.121.2                Kubernetes plugin 1.10.2          ...

  2. Isomorphic JavaScript: The Future of Web Apps(译)

                                                                                                 Isomorp ...

  3. 我的Mac使用笔记

    此篇记录mac使用相关的一些东西,不断更新中... 1.Mac 安装homebrew : https://brew.sh/index_zh-cn.html /usr/bin/ruby -e " ...

  4. 20、什么样的项目适合Web自动化测试

    1.什么是Web自动化测试?概念:让程序代替人为自动验证Web项目功能的过程 2.什么Web项目适合做自动化测试 1.需求变动不频繁 2.项目周期长 3.项目需要回归测试 3.如阿进行Web自动化测试 ...

  5. cookie、localstroage与sessionstroage的一些优缺点

    1.    Cookie 在前端开发中,尽量少用cooie,原因: (1)   cookie限制大小,约4k左右,不适合存储业务数据,尤其是数据量较大的值: (2)   cookie会每次随http请 ...

  6. VueJS $refs 在 ElementUI 中遇到的问题

    表单验证的时候  $refs 拿不到 暂且是用 $nextTick 解决,具体原因有待研究 假入在 created 中注册时间来验证 validate,那就放在mounted中 或者...注册了 ev ...

  7. Java爬虫(二)

    上一篇简单的实现了获取url返回的内容,在这一篇就要第返回的内容进行提取,并将结果保存到html中.而且这个爬虫是基于python爬虫的java语言实现,其逻辑大致相同. 一 . 需求: 抓取主页面: ...

  8. nginx 各种配置

    first : mkdir /usr/local/nginx/conf/vhosts{网站配置}/usr/local/nginx/conf/vhosts/test.conf : server { li ...

  9. UUID工具类

    在数据库中,一张数据表中的主键,通常会用自增的整型值或者UUID字符串来表示.其中,UUID可以产生全球唯一的标识符,从而确保主键的唯一. import java.util.UUID; /** * 工 ...

  10. Linux软件安装install命令

    install  1.作用 install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户. 2.格式 (1)install [选项]... 来源 目的地 (2)install [选项]. ...