python学习之-- redis模块操作 集合和有序集合
redis 模块操作之 集合set和有序集合zset
Set 集合操作,不允许重复的列表
sadd(name,value):name对应的集合中添加元素
scard(name):获取name对应的集合中元素个数
sdiff(keys,*args):差集
sdiffstore(dest,keys,*args):差集存到新的地方
sinter(keys,*args):交集
sinterstore(dest,keys,*args):交集另外存储
sismember(name,value):判断是否有对应的值
smembers(name):获取集合所有成员
smove(src,dst,value):从一个value从src集合中移动到dst集合中
spop(name):从集合的右侧移除一个成员,并将其返回
srandmember(name,number):从name对应的集合中随机获取member个元素。
srem(name,value):在name对应的集合中删除某些值
sunion(keys,*args):并集
sunionstore(dest,keys,*args):并集另外存储
sscan(name,cursor=0,match=None,count=None)
sscan_iter(name,match=None,count=None)
同字符串的操作,用于增量迭代分批获取元素,避免内存消耗过大
添加举例:
r.sadd('sname','jack','bard') #添加数据
print(r.smembers('sname')) # 获取所有的值
有序集合:在集合的基础上,为每个元素排序,元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有
2个值,即:值和分数,分数专门用来做排序。
zadd(name,*arg,**kwargs):在name对应的有序集合中添加元素
zadd('zz',1,'n1',2,'n2') # 其中数字为权重值
获取值:zrange zz 0 -1
注意:当添加重复项是,修改的只是权重值,实际数据还是唯一的。
zrange zz 0 -1 withscores :可以同时显示数据和对应的权重值
zcard(name):获取集合元素的数量
zcount(name,min,max):获取集合中权重在min,max之间的个数
zincrby(name,value,amount):自增有序集合中name对应的分数
zrange(name,start,end,desc=False,withscores=False,score_cast_func=float)
按照索引范围获取name对应的有序集合的元素
start:有序集合索引的起始位置(非分数)
end:索引的结束位置(非分数)
desc:排序规则,默认按照分数从小到大排序
withscores:是否获取元素的分数
score_cast_func:对分数进行数据转换的函数
zrank(name,value):获取某个值在name对应的有序集合中的排序(从0开始)
zrangebylex(name,min,max,start=None,num=None)
当有序集合的所有成员都具有相同的分值时,有序集合的元素会根据成员的值
zrem(name,values):删除值
zremrangebyrank(name,min,max):根据排行范围删除,
zremrangebysore(name,min,max):根据分数范围删除
zremrangebylex(name,min,max):根据值返回删除。
zscore(name,value):获取name对应的有序集合中value对应的分数
zinterstore(dest,keys,aggregate=None):获取有序集合的交集,如果遇到相同值,则按照aggregate操作
aggregate值为:sum,min,max
zunionstore(dest,keys,aggregate=None):获取2个集合的并集,参数同上
zcan(name,cursor=0,match=None,count=None,score_cast_func=float)
# 同字符串相似,相较于字符串新增score_cast_func,用来对分数进行操作
python学习之-- redis模块操作 集合和有序集合的更多相关文章
- python学习之-- redis模块操作 LIST
redis 模块操作之 List List 操作,在内存中按照一个name对应一个List来存储. lpush(name,values):在name对应的list中添加元素,每个新的元素都添加到列表的 ...
- python学习之-- redis模块操作 string
redis 模块操作之--> String String:redis中的string在内存中按照一个key 对应一个 value来存储. 使用方法如下:set(name, value, ex=N ...
- python学习之-- redis模块操作 HASH
redis 操作 之 -Hash Hash 操作:hash在内存中的存储格式 name hash n1 ------> k1 -> v1 k2 -> v2 k3 -> v3hs ...
- python学习之-- redis模块管道/订阅发布
redis 模块操作剩余其他常用操作 delete(*names):删除任意的数据类型exists(name):检测redis的name是否存在keys(pattern='*'):根据模型获取redi ...
- python学习之-- redis模块基本介绍
数据缓存系统: 1:mongodb:是直接持久化,直接存储于硬盘的缓存系统 2:redis: 半持久化,存储于内存和硬盘 3:memcache:数据只能存储在内存里的缓存系统关于memcache 学习 ...
- Redis常用操作--------SortedSet(有序集合)
1.ZADD key score member [[score member] [score member] ...] 将一个或多个 member 元素及其 score 值加入到有序集 key 当中. ...
- python 学习笔记 redis操作
Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...
- python对redis的常用操作 下 (无序集合,有序集合)
无序集合: 首先介绍增加,删除和获得所有元素的方法.我将会用第二部分来讨论集合的特殊操作: In [136]: x.sadd("challenge", 1,2,3,4,5,6,7, ...
- Python学习day18-常用模块之NumPy
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
随机推荐
- SQL中的SELECT_简单查询语句总结
--以scott用户下的dept和emp表为例 --注意:如果scott用户不能使用,请使用system用户登录--解锁scott用户ALTER USER SCOTT ACCOUNT UNLOCK;- ...
- iOS UI异步更新:dispatch_async 与 dispatch_get_global_queue 的使用方法
GCD (Grand Central Dispatch) 是Apple公司开发的一种技术,它旨在优化多核环境中的并发操作并取代传统多线程的编程模式. 在Mac OS X 10.6和IOS 4.0之后开 ...
- leetcode_1039. Minimum Score Triangulation of Polygon_动态规划
https://leetcode.com/problems/minimum-score-triangulation-of-polygon/ 题意:给定一个凸的N边形(N<=50),每个顶点有一个 ...
- docker的网络配置
Docker的4种网络模式 我们在使用docker run创建Docker容器时,可以用–net选项指定容器的网络模式,Docker有以下4种网络模式: host模式:使用–net=host指定. c ...
- Python3简明教程(三)—— 运算符和表达式
运算符 什么是运算符? 举个简单的例子 4 +5 = 9 . 例子中,4 和 5 被称为操作数,"+" 称为运算符. Python支持以下类型的运算符: 算术运算符 关系运算符 赋 ...
- MySQL存储过程实现分页及变量的定义
delimiter是MySQL中的命令,这个命令与存储过程没什么关系. 其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了. 即改变输入结束符. 默认情况下,delimit ...
- Java数据结构和算法(三)--三大排序--冒泡、选择、插入排序
三大排序在我们刚开始学习编程的时候就接触过,也是刚开始工作笔试会遇到的,后续也会学习希尔.快速排序,这里顺便复习一下 冒泡排序: 步骤: 1.从首位开始,比较首位和右边的索引 2.如果当前位置比右边的 ...
- 中位数II
该题目与思路分析来自九章算法的文章,仅仅是自己做个笔记! 题目:数字是不断进入数组的,在每次添加一个新的数进入数组的同时返回当前新数组的中位数. 解答: 这道题是用堆解决的问题.用两个堆,max he ...
- VS2015提示:未安装Style的Visual Studio语言支持,代码编辑Intellisense将不可用。服务器控件的标记Intellisense可能不起作用
一.问题 最近在VS2015打开文件,提示未安装Style的Visual Studio语言支持,代码编辑Intellisense将不可用.服务器控件的标记Intellisense可能不起作用. Int ...
- Linux常用命令大全2
Linux命令是对Linux系统进行管理的命令.对于Linux系统来说,无论是中央处理器.内存.驱动.键盘.鼠标,还是用户等都是文件,Linux命令是它正常运行的核心.接下来,就来看看xp系统下载编辑 ...