Redis列表是简单的字符串列表,一个列表可以包含超过40亿个元素

lpush(name,values):在name对应的list中添加元素,每个新的元素都添加到列表的最左边

rpush(name, values):在name对应的list中添加元素,每个新的元素都添加到列表的最右边

lrange(name, start, end):在name列表中分片获取数据,start为索引的起始位置,end为索引结束位置

127.0.0.1:6379> lpush name jack john andy jane
(integer) 4
127.0.0.1:6379> lrange name 0 -1
1) "jane"
2) "andy"
3) "john"
4) "jack"
127.0.0.1:6379> rpush web html javascript php
(integer) 3
127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "javascript"
3) "php"

lpushx(name,value):在name对应的list中添加元素,只有name已经存在时,值才添加到列表的最左边

rpushx(name, value):在name对应的list中添加元素,只有name已经存在时,值才添加到列表的最右边

127.0.0.1:6379> lpushx name alex
(integer) 5
127.0.0.1:6379> lrange name 0 -1
1) "alex"
2) "jane"
3) "andy"
4) "john"
5) "jack"
127.0.0.1:6379> lpushx name1 alex
(integer) 0
127.0.0.1:6379> rpushx web asp
(integer) 4
127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "javascript"
3) "php"
4) "asp"

llen(name):name对应的list元素的个数

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "javascript"
3) "php"
4) "asp"
127.0.0.1:6379> llen web
(integer) 4

lindex(name, index):在name对应的列表中根据索引获取列表元素

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "javascript"
3) "php"
127.0.0.1:6379> lindex web 1
"javascript"

linsert(name, where, refvalue, value):在name对应的列表的某一个值前或后插入一个新值

where为BEFORE或AFTER,refvalue为标杆值,即要插到的地方,value为要插入的数据

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "javascript"
3) "php"
4) "asp"
127.0.0.1:6379> linsert web before javascript css
(integer) 5
127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "javascript"
4) "php"
5) "asp"

lset(name, index, value):对name对应的list中的某一个索引位置重新赋值,index为list的索引位置,value为要设置的值

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "javascript"
4) "php"
5) "asp"
127.0.0.1:6379> lset web -1 aspx
OK
127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "javascript"
4) "php"
5) "aspx"

lrem(name, num, value):在name对应的list中删除指定的值

num=0时删除列表中所有的指定值,num=2时从前到后,删除2个,num=-2时从后向前,删除2个,value为要删除的值

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "html"
4) "javascript"
5) "php"
6) "aspx"
127.0.0.1:6379> lrem web 1 html
(integer) 1
127.0.0.1:6379> lrange web 0 -1
1) "css"
2) "html"
3) "javascript"
4) "php"
5) "aspx"

lpop(name):在name对应的list的左边获取第一个元素返回并移除

rpop(name):在name对应的list的右边获取第一个元素返回并移除

127.0.0.1:6379> lrange web 0 -1
1) "css"
2) "html"
3) "javascript"
4) "php"
5) "aspx"
127.0.0.1:6379> lpop web
"css"
127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "javascript"
3) "php"
4) "aspx"
127.0.0.1:6379> rpop web
"aspx"
127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "javascript"
3) "php"

ltrim(name, start, end):在name对应的list中移除没有在start到end索引之间的值,start为索引的起始位置,end为索引结束位置

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "javascript"
4) "php"
5) "asp"
127.0.0.1:6379> ltrim web 1 3
OK
127.0.0.1:6379> lrange web 0 -1
1) "css"
2) "javascript"
3) "php"

rpoplpush(src, dst):从一个列表取出最右边的元素,同时将其添加至另一个列表的最左边,src为要取数据的列表,dst为要添加数据的列表

127.0.0.1:6379> lrange name 0 -1
1) "alex"
2) "jane"
3) "andy"
4) "john"
5) "jack"
127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "javascript"
4) "php"
5) "asp"
127.0.0.1:6379> rpoplpush name web
"jack"
127.0.0.1:6379> lrange name 0 -1
1) "alex"
2) "jane"
3) "andy"
4) "john"
127.0.0.1:6379> lrange web 0 -1
1) "jack"
2) "html"
3) "css"
4) "javascript"
5) "php"
6) "asp"

brpoplpush(src, dst, timeout):从一个列表的右侧移除一个元素并将其添加到另一个列表的左侧

src为取出并要移除元素的列表,dst为要插入元素的列表对应的name,timeout为当src对应的列表中没有数据时,阻塞等待其有数据的超时时间(秒),0 表示永远阻塞

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "javascript"
4) "php"
5) "asp"
127.0.0.1:6379> lrange name 0 -1
1) "alex"
2) "jane"
3) "andy"
4) "john"
127.0.0.1:6379> brpoplpush name web 1
"john"
127.0.0.1:6379> lrange web 0 -1
1) "john"
2) "html"
3) "css"
4) "javascript"
5) "php"
6) "asp"
127.0.0.1:6379> lrange name 0 -1
1) "alex"
2) "jane"
3) "andy"

blpop(keys, timeout):获取并移除列表从左往右的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现元素为止

brpop(keys, timeout):获取并移除列表从左往右的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现元素为止

timeout为超时时间,当元素所有列表的元素获取完之后,阻塞等待列表内有数据的时间(秒), 0 表示永远阻塞

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "javascript"
4) "php"
5) "asp"
127.0.0.1:6379> blpop web 1
1) "web"
2) "html"
127.0.0.1:6379> lrange web 0 -1
1) "css"
2) "javascript"
3) "php"
4) "asp"
127.0.0.1:6379> brpop web 1
1) "web"
2) "asp"
127.0.0.1:6379> lrange web 0 -1
1) "css"
2) "javascript"
3) "php"

Python-Redis的List操作的更多相关文章

  1. python之redis和memcache操作

    Redis 教程 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据 ...

  2. python对redis的常用操作 上 (对列表、字符串、散列结构操作)

    这里的一切讨论均基于python的redis-py库. 安装使用: pip install redis 然后去获取一个redis客户端: redis_conn = redis.Redis(host=R ...

  3. Python redis 简单介绍

    Python redis 简单介绍 1.安装 终端输入: pip(or)pip3.6 install redis 安装成功 2.哈哈,发现我并没有redis服务可以访问,所以到这里,在本机安装了red ...

  4. 生产消费者模式与python+redis实例运用(基础篇)

    根据这个图,我们举个简单的例子:假如你去某个餐厅吃饭,点了很多菜,厨师要一个一个菜的做,一个厨师不可能同时做出所有你点的菜,于是你有两个选择:第一个,厨师把所有菜都上齐了,你才开始吃:还有一个选择,做 ...

  5. python -- redis连接与使用

    前面我们简单介绍了redis nosql数据库,现在我们在python里面来使用redis. 一.python连接redis 在python中,要操作redis,目前主要是通过一个python-red ...

  6. windows中实现python,redis服务自动重启(任务计划程序+bat脚本)

    需求:银行电脑无法自动开机,只能 通过 应用相关服务每天自动重启的方式实现 服务更新并且防止服务假死,内存过大 等情况 相关工具:win10系统中,使用windows自带的任务计划程序 和 bat脚本 ...

  7. python redis分布式锁改进

    0X01 python redis分布式锁通用方法 REDIS分布式锁实现的方式:SETNX + GETSET 使用Redis SETNX 命令实现分布式锁 python 版本实现上述思路(案例1) ...

  8. python redis之连接池的原理

    python redis之连接池的原理 转载地址 什么是连接池 通常情况下, 当我们需要做redis操作时, 会创建一个连接, 并基于这个连接进行redis操作, 操作完成后, 释放连接, 一般情况下 ...

  9. Redis数据类型及其操作

    redis数据类型即操作 1. 字符串 set 设置字符串 格式: set key value 例子: set name kainhuck get 获取字符串的值 格式: get key 例子: ge ...

  10. redis的一些操作

    public class WnsRedisFactory { private static Cache pool = null; private static JedisConnectionFacto ...

随机推荐

  1. picasso设置背景图片

    compile'com.squareup.picasso:picasso:2.5.2' String url = "http://192.168.191.1:8080/b"+(i+ ...

  2. ACM-最小生成树之继续畅通project——hdu1879

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/lx417147512/article/details/27092583 ************** ...

  3. Property Animator基本用法

    ObjectAnimator anim=ObjectAnimator.ofFloat(textview, "alpha", 0f, 1f); //ObjectAnimator an ...

  4. QCon2016 上海会议汇总(1) - 前端技术实践

    日程传送门:http://2016.qconshanghai.com/schedule 我这里重点总结下前端.移动端.团队管理.研发支撑相关的议题,谈谈我的感受. <Vue 2.0: 渐进式前端 ...

  5. Mysql的空值与NULL的区别

    Mysql数据库是一个基于结构化数据的开源数据库.SQL语句是MySQL数据库中核心语言.不过在MySQL数据库中执行SQL语句,需要小心两个陷阱. 陷阱一:空值不一定为空 空值是一个比较特殊的字段. ...

  6. tomcat异常处理经验汇总

    1.Https: Feb 21, 2018 5:22:02 PM org.apache.coyote.AbstractProtocol initSEVERE: Failed to initialize ...

  7. 遇到“拒绝了对对象的 EXECUTE 权限”和“无法作为数据库主体执行,因为主体 "dbo" 不存在、无法模拟这种类型的主体,或您没有所需的权限”的问题

    在将数据库从sqlserver2000迁移到2005后,原有的用户名TDS在执行存储过程是报错:“拒绝了对对象的 EXECUTE 权限”. 如网上所说,在使用的数据库的属性页->权限中给TDS添 ...

  8. linux 软件包的命名规则

     linux软件包的命名规则 eg:主包       bind-9.7.1-1.el7.i586.rpm 子包 bind-libs-9.7.1-1.el7.i586.rpm bind-utils-9. ...

  9. java错误:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Bu

    我们在用Eclipse进行Java web开发时,可能会出现这样的错误:The superclass javax.servlet.http.HttpServlet was not found on t ...

  10. java:eclipse安装tomcat插件及配置tomcat

    我们都知道myeclipse自带tomat图标,而eclipse却没有,若想eclipse实现带有tomcat图标可以下载tomcat插件 tomcat插件下载地址:http://www.eclips ...