redis 数据类型之列表
1、lpush
- lpush(name,values)
- # 在name对应的list中添加元素,每个新的元素都添加到列表的最左边
- # 如:
- # conn.lpush('oo', 11,22,33)
- # 保存顺序为: 33,22,11
- # 扩展:
- # rpush(name, values) 表示从右向左操作
2、lpushx
- lpushx(name,value)
- # 在name对应的list中添加元素,只有name已经存在时,值添加到列表的最左边
- # 更多:
- # rpushx(name, value) 表示从右向左操作
3、linsert
- linsert(name, where, refvalue, value))
- # 在name对应的列表的某一个值前或后插入一个新值
- # 参数:
- # name,redis的name
- # where,BEFORE或AFTER
- # refvalue,标杆值,即:在它前后插入数据
- # value,要插入的数据
4、lpop
- lpop(name)
- # 在name对应的列表的左侧获取第一个元素并在列表中移除,返回值则是第一个元素
- # 更多:
- # rpop(name) 表示从右向左操作
5、lrem
- conn.lrem(name, value, num)
- # 在name对应的list中删除指定的值
- # 参数:
- # name,redis的name
- # value,要删除的值
- # num, num=0,删除列表中所有的指定值;
- # num=2,从前到后,删除2个;
- # num=-2,从后向前,删除2个
6、lset
- conn.lset(name, index, value)
- # 对name对应的list中的某一个索引位置重新赋值
- # 参数:
- # name,redis的name
- # index,list的索引位置
- # value,要设置的值
7.blpop
- blpop(keys, timeout)
- # 将多个列表排列,按照从左到右去pop对应列表的元素
- # 参数:
- # keys,redis的name的集合
- # timeout,超时时间,当元素所有列表的元素获取完之后,阻塞等待列表内有数据的时间(秒), 0 表示永远阻塞
- # 更多:
- # r.brpop(keys, timeout),从右向左获取数据
8、lrange
- lrange(name, start, end)
- # 在name对应的列表分片获取数据
- # 参数:
- # name,redis的name
- # start,索引的起始位置
- # end,索引结束位置
9、lrange容易出现爆栈现象,处理方案:模仿hscan_iter
- def list_iter(key,count=100):
- index = 0
- while True:
- data_list = conn.lrange(key, index, index+count-1)
- if not data_list:
- return
- index += count
- for item in data_list:
- yield item
- for item in list_iter('k1',count=3):
- print(item)
10、llen
- llen(name)
- # name对应的list元素的个数
11、lindex
- lindex(name, index)
- # 在name对应的列表中根据索引获取列表元素
12、rpoplpush
- rpoplpush(src, dst)
- # 从一个列表取出最右边的元素,同时将其添加至另一个列表的最左边
- # 参数:
- # src,要取数据的列表的name
- # dst,要添加数据的列表的name
13、brpoplpush
- brpoplpush(src, dst, timeout)
- # 从一个列表的右侧移除一个元素并将其添加到另一个列表的左侧
- # 参数:
- # src,取出并要移除元素的列表对应的name
- # dst,要插入元素的列表对应的name
- # timeout,当src对应的列表中没有数据时,阻塞等待其有数据的超时时间(秒),0 表示永远阻塞
14、ltrim
- ltrim(name, start, end)
- # 在name对应的列表中移除没有在start-end索引之间的值
- # 参数:
- # name,redis的name
- # start,索引的起始位置
- # end,索引结束位置
redis 数据类型之列表的更多相关文章
- Redis数据类型之列表(list)
1. 什么是列表 redis的列表使用双向链表实现,往列表中放元素的时候复杂度是O(1),但是随机访问的时候速度就不行了,因为需要先遍历到指定的位置才可以取到元素. 既然列表是使用链表实现的,那么就说 ...
- Redis数据类型之列表List
Redis列表简介 Redis列表是简单的字符串列表,一个列表最多可以包含 232 - 1 个元素.列表按照插入顺序排序,可以从列表的头部或者尾部添加元素 上图演示了使用LPUSH向列表中插入元素,并 ...
- 【Redis学习之五】Redis数据类型:列表和散列
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 redis-2.8.18 一.列表 基于Linked Lis ...
- Redis数据类型之列表操作
redis 目录: 1.自动分配(redis) - 批量导入 2.微信自动绑定 3.django的ORM做不了的操作,怎么自定义操作数据库 extra ’ 4.报表 公司每个月销售的业绩 5.权限 = ...
- Redis数据类型之散列表
Redis五大数据类型以及操作 目录: 一.redis的两种链接方式 二.redis的字符串操作(string) 三.redis的列表操作(list) 四.redis的散列表操作(类似于字典里面嵌套字 ...
- 初识redis数据类型
初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...
- redis数据类型及使用场景
Redis数据类型 String: Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字. 常用命令: set,get,decr,incr,mge ...
- Redis数据类型介绍
Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...
- redis数据类型
Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...
随机推荐
- Codeforces Round #561 (Div. 2)
C. A Tale of Two Lands 题意: 给出 n 个数,问有多少点对(x,y)满足 |x-y| ≤ |x|,|y| ≤ |x+y|: (x,y) 和 (y,x) 表示一种答案: 题解: ...
- redux.js的基本使用
1.先是安装reduxJx, cnpm i --save rudux 2.创建一个store的js文件 3.使用import来引用 redux import { createStore } from ...
- 快排java代码
定一个基准位,递归左右两边排序. public void fun(){ int arr[] = {2,3,4,5,6,7,822,3,4,5,8,6,5,4,2,1}; //System.out.pr ...
- Java 学习笔记(11)——lambda 表达式
在写Java代码的时候,如果某个地方需要一个接口的实现类,一般的做法是新定义一个实现类,并重写接口中的方法,在需要使用的时候new一个实现类对象使用,为了一个简单的接口或者说为了一个回调函数就得额外编 ...
- HDU1172猜数字 [模拟]
1.题意 任务是猜一个四位数,每次尝试后会给出这次猜中了几个数字和猜中了几个位置,求能否根据尝试的记录给出答案 2.分析 数据给出查询次数和每次查询的数及其有几个数和几个位置符合,值得注意的是,猜对的 ...
- 使用 HttpClient 进行表单提交时,遇到的问题
问题 在开发微信支付的小微商户进件接口时,需要通过表单来上传身份证图片等数据.在微信支付接口文档也说明了,需要使用 multipart/form-data 的方式发送请求..NET 提供了 Multi ...
- 分布式大牛详解Zookeeper底层原理
很多学员都在反馈,说zk很难学,学的不是很明白,在这里,我继续带着大家详解一遍Zookeeper 首先zk是什么呢首先肯定是一个个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用 ...
- 支撑百万级并发,Netty如何实现高性能内存管理
Netty作为一款高性能网络应用程序框架,实现了一套高性能内存管理机制 通过学习其中的实现原理.算法.并发设计,有利于我们写出更优雅.更高性能的代码:当使用Netty时碰到内存方面的问题时,也可以更高 ...
- 对QT中QBitArray类进行简单剖析
我们知道Qt中的QBitArray类支持在位(bit)的层次上进行数据操作.本文剖析该类在二进制文件读写时的一些要点.另外,在Qt中,QDataStream类对于二进制文件的读写提供了诸多便利,需要注 ...
- Harbor本地镜像库安装与使用
Harbor安装很简单,不过安装以后要怎么操作,百度了好久都没有找到实操的方法,怎么从官方拉取镜像后更新到私有仓库中?这个弄了好久,一样样测试后才找到方法,对于不熟悉私有仓库的小白来说,有点坑.还好花 ...