Python-Redis的Set操作
集合为不重复的列表
无序集合
sadd(name,values):在name对应的集合中添加元素
smembers(name):获取name对应的集合的所有成员
127.0.0.1:6379> sadd name john jack jack andy
(integer) 3
127.0.0.1:6379> smembers name
1) "andy"
2) "john"
3) "jack"
scard(name):获取name对应的集合中元素个数
127.0.0.1:6379> smembers name
1) "andy"
2) "john"
3) "jack"
127.0.0.1:6379> scard name
(integer) 3
sdiff(keys, *args):在第一个name对应的集合中且不在其他name对应的集合的元素集合
127.0.0.1:6379> smembers name
1) "andy"
2) "john"
3) "css"
4) "jack"
5) "php"
127.0.0.1:6379> smembers web
1) "php"
2) "javascript"
3) "css"
4) "html"
127.0.0.1:6379> sdiff name web
1) "andy"
2) "john"
3) "jack"
sdiffstore(dest, keys, *args):获取第一个name对应的集合中且不在其他name对应的集合,再将其添加到dest对应的集合中
127.0.0.1:6379> smembers name
1) "andy"
2) "john"
3) "css"
4) "jack"
5) "php"
127.0.0.1:6379> smembers web
1) "php"
2) "javascript"
3) "css"
4) "html"
127.0.0.1:6379> sdiffstore name_web name web
(integer) 3
127.0.0.1:6379> smembers name_web
1) "andy"
2) "john"
3) "jack"
sismember(name, value):检查value是否是name对应的集合的成员
127.0.0.1:6379> smembers web
1) "php"
2) "javascript"
3) "css"
4) "html"
127.0.0.1:6379> sismember web asp
(integer) 0
127.0.0.1:6379> sismember web php
(integer) 1
smove(src, dst, value):将某个成员从一个集合中移动到另外一个集合,src为被移动成员的集合,移动成员到dst集合
127.0.0.1:6379> smembers name
1) "andy"
2) "john"
3) "jack"
127.0.0.1:6379> smembers web
1) "php"
2) "javascript"
3) "css"
4) "html"
127.0.0.1:6379> smove web name php
(integer) 1
127.0.0.1:6379> smembers name
1) "php"
2) "andy"
3) "john"
4) "jack"
127.0.0.1:6379> smembers web
1) "javascript"
2) "css"
3) "html"
spop(name):从集合的右侧(尾部)返回并移除一个成员
127.0.0.1:6379> smembers name
1) "php"
2) "andy"
3) "john"
4) "jack"
127.0.0.1:6379> spop name
"jack"
127.0.0.1:6379> smembers name
1) "php"
2) "andy"
3) "john"
srandmember(name, numbers):从name对应的集合中随机获取 numbers 个元素
127.0.0.1:6379> smembers web
1) "php"
2) "html"
3) "css"
4) "aspx"
5) "asp"
6) "ajax"
7) "javascript"
127.0.0.1:6379> srandmember web 2
1) "ajax"
2) "javascript"
127.0.0.1:6379> srandmember web 5
1) "html"
2) "css"
3) "aspx"
4) "javascript"
5) "ajax"
srem(name, values):在name对应的集合中删除某些值
127.0.0.1:6379> smembers web
1) "php"
2) "html"
3) "css"
4) "aspx"
5) "asp"
6) "ajax"
7) "javascript"
127.0.0.1:6379> srem web aspx
(integer) 1
127.0.0.1:6379> smembers web
1) "php"
2) "html"
3) "css"
4) "asp"
5) "ajax"
6) "javascript"
sinter(keys, *args):获取name对应集合的并集
sinterstore(dest, keys, *args):获取name对应集合的并集,并讲结果保存到dest对应的集合中
127.0.0.1:6379> smembers name
1) "jack"
2) "andy"
3) "php"
4) "john"
5) "jane"
6) "html"
7) "css"
127.0.0.1:6379> smembers web
1) "php"
2) "html"
3) "css"
4) "asp"
5) "ajax"
6) "javascript"
127.0.0.1:6379> sinter web name
1) "php"
2) "html"
3) "css"
127.0.0.1:6379> sinterstore web_name web name
(integer) 3
127.0.0.1:6379> smembers web_name
1) "php"
2) "css"
3) "html"
sunion(keys, *args):获取name对应的集合的并集
sunionstore(dest,keys, *args):获取name对应的集合的并集,并将结果保存到dest对应的集合中
127.0.0.1:6379> smembers name
1) "andy"
2) "php"
3) "john"
4) "jane"
5) "html"
6) "css"
7) "jack"
127.0.0.1:6379> smembers web
1) "php"
2) "html"
3) "css"
4) "asp"
5) "ajax"
6) "javascript"
127.0.0.1:6379> sunion name web
1) "john"
2) "jane"
3) "css"
4) "html"
5) "jack"
6) "asp"
7) "andy"
8) "javascript"
9) "ajax"
10) "php"
127.0.0.1:6379> sunionstore name_web name web
(integer) 10
127.0.0.1:6379> smembers name_web
1) "john"
2) "jane"
3) "css"
4) "html"
5) "jack"
6) "asp"
7) "andy"
8) "javascript"
9) "ajax"
10) "php"
sscan(name, cursor=0, match=None, count=None):匹配name对应的集合中的value
sscan_iter(name, match=None, count=None):为迭代匹配name对应的集合中的value
127.0.0.1:6379> smembers name_web
1) "john"
2) "jane"
3) "css"
4) "html"
5) "jack"
6) "asp"
7) "andy"
8) "javascript"
9) "ajax"
10) "php"
127.0.0.1:6379> sscan name_web 0 match j*
1) "7"
2) 1) "javascript"
2) "john"
3) "jane"
4) "jack"
有序集合
有序集合中每一个元素有一个值和一个分数,分数专门用来排序
zadd(name, *args, **kwargs):在name对应的有序集合中添加元素
zrange( name, start, end, desc=False, withscores=False, score_cast_func=float):按照索引范围获取name对应的有序集合的元素,start为有序集合索引起始位置(非分数),end为有序集合索引结束位置(非分数),desc为排序规则,默认按照分数从小到大排序,withscores为是否获取元素的分数,默认只获取元素的值,score_cast_func为对分数进行数据转换的函数
zrevrange(name, start, end, withscores=False, score_cast_func=float):从大到小排序
127.0.0.1:6379> zadd web 3 html 7 css 12 javascript 4 php
(integer) 4
127.0.0.1:6379> zrange web 0 -1 withscores
1) "html"
2) "3"
3) "php"
4) "4"
5) "css"
6) "7"
7) "javascript"
8) "12"
127.0.0.1:6379> zrevrange web 0 -1 withscores
1) "javascript"
2) "12"
3) "css"
4) "7"
5) "php"
6) "4"
7) "html"
8) "3"
zrangebyscore(name, min, max, start=None, num=None, withscores=False, score_cast_func=float):按照分数范围获取name对应的有序集合的元素,从小到大排序
zrevrangebyscore(name, max, min, start=None, num=None, withscores=False, score_cast_func=float):按照分数范围获取name对应的有序集合的元素,从大到小排序
127.0.0.1:6379> zadd web 3 html 7 css 12 javascript 4 php 15 asp 6 aspx
(integer) 6
127.0.0.1:6379> zrangebyscore web 0 5
1) "html"
2) "php"
127.0.0.1:6379> zrevrangebyscore web 20 10
1) "asp"
2) "javascript"
zcard(name):获取name对应的有序集合元素的数量
127.0.0.1:6379> zadd web 3 html 7 css 12 javascript 4 php 15 asp 6 aspx
(integer) 6
127.0.0.1:6379> zcard web
(integer) 6
zcount(name, min, max):获取name对应的有序集合中分数在min到max之间的个数
127.0.0.1:6379> zadd web 3 html 7 css 12 javascript 4 php 15 asp 6 aspx
(integer) 6
127.0.0.1:6379> zcount web 10 20
(integer) 2
zincrby(name, amount, value):自增name对应的有序集合中value对应的分数
127.0.0.1:6379> zrange web 0 -1 withscores
1) "html"
2) "3"
3) "php"
4) "4"
5) "aspx"
6) "6"
7) "css"
8) "7"
9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zincrby web 2 css
"9"
127.0.0.1:6379> zrange web 0 -1 withscores
1) "html"
2) "3"
3) "php"
4) "4"
5) "aspx"
6) "6"
7) "css"
8) "9"
9) "javascript"
10) "12"
11) "asp"
12) "15"
zrank(name, value):获取name对应的有序集合中value的排行,从小到大排序,第一位为0
zrevrank(name, value):获取name对应的有序集合中value的排行,从大到小排序,第一位为0
127.0.0.1:6379> zrange web 0 -1 withscores
1) "html"
2) "3"
3) "php"
4) "4"
5) "aspx"
6) "6"
7) "css"
8) "9"
9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zrank web php
(integer) 1
127.0.0.1:6379> zrevrank web php
(integer) 4
zrem(name, values):删除name对应的有序集合中的values
127.0.0.1:6379> zrange web 0 -1 withscores
1) "html"
2) "3"
3) "php"
4) "4"
5) "aspx"
6) "6"
7) "css"
8) "9"
9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zrem web aspx css
(integer) 2
127.0.0.1:6379> zrange web 0 -1 withscores
1) "html"
2) "3"
3) "php"
4) "4"
5) "javascript"
6) "12"
7) "asp"
8) "15"
zremrangebyrank(name, min, max): 根据排行范围删除
127.0.0.1:6379> zrange web 0 -1 withscores
1) "html"
2) "3"
3) "php"
4) "4"
5) "aspx"
6) "6"
7) "css"
8) "7"
9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zremrangebyrank web 0 2
(integer) 3
127.0.0.1:6379> zrange web 0 -1 withscores
1) "css"
2) "7"
3) "javascript"
4) "12"
5) "asp"
6) "15"
zremrangebyscore(name, min, max): 根据分数范围删除
127.0.0.1:6379> zrange web 0 -1 withscores
1) "html"
2) "3"
3) "php"
4) "4"
5) "aspx"
6) "6"
7) "css"
8) "7"
9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zremrangebyscore web 0 5
(integer) 2
127.0.0.1:6379> zrange web 0 -1 withscores
1) "aspx"
2) "6"
3) "css"
4) "7"
5) "javascript"
6) "12"
7) "asp"
8) "15"
zscore(name, value):获取name对应的有序集合中value对应的分数
127.0.0.1:6379> zrange web 0 -1 withscores
1) "aspx"
2) "6"
3) "css"
4) "7"
5) "javascript"
6) "12"
7) "asp"
8) "15"
127.0.0.1:6379> zscore web css
"7"
zinterstore(dest, number, keys, aggregate=None):获取number个有序集合的交集,并存入到dest集合中,如果遇到相同值不同分数,则按照aggregate进行操作,aggregate的值为:SUM,MIN,MAX
127.0.0.1:6379> zrange web 0 -1 withscores
1) "html"
2) "3"
3) "php"
4) "4"
5) "aspx"
6) "6"
7) "css"
8) "7"
9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zrange name 0 -1 withscores
1) "john"
2) "3"
3) "jane"
4) "7"
5) "php"
6) "9"
7) "jack"
8) "12"
9) "andy"
10) "17"
11) "css"
12) "32"
127.0.0.1:6379> zinterstore web_name 2 web name
(integer) 2
127.0.0.1:6379> zrange web_name 0 -1 withscores
1) "php"
2) "13"
3) "css"
4) "39"
zunionstore(dest, number, keys, aggregate=None):获取number个有序集合的并集,如果遇到相同值不同分数,则按照aggregate进行操作,aggregate的值为:SUM,MIN,MAX
127.0.0.1:6379> zrange web 0 -1 withscores
1) "html"
2) "3"
3) "php"
4) "4"
5) "aspx"
6) "6"
7) "css"
8) "7"
9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zrange name 0 -1 withscores
1) "john"
2) "3"
3) "jane"
4) "7"
5) "php"
6) "9"
7) "jack"
8) "12"
9) "andy"
10) "17"
11) "css"
12) "32"
127.0.0.1:6379> zunionstore web_name 2 web name
(integer) 10
127.0.0.1:6379> zrange web_name 0 -1 withscores
1) "html"
2) "3"
3) "john"
4) "3"
5) "aspx"
6) "6"
7) "jane"
8) "7"
9) "jack"
10) "12"
11) "javascript"
12) "12"
13) "php"
14) "13"
15) "asp"
16) "15"
17) "andy"
18) "17"
19) "css"
20) "39"
zscan(name, cursor=0, match=None, count=None, score_cast_func=float):匹配name对应的有序集合中的value
zscan_iter(name, match=None, count=None,score_cast_func=float):迭代匹配
127.0.0.1:6379> zrange web 0 -1 withscores
1) "html"
2) "3"
3) "php"
4) "4"
5) "aspx"
6) "6"
7) "css"
8) "7"
9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zscan web 0 match *a*
1) "0"
2) 1) "aspx"
2) "6"
3) "javascript"
4) "12"
5) "asp"
6) "15"
Python-Redis的Set操作的更多相关文章
- python之redis和memcache操作
Redis 教程 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据 ...
- python对redis的常用操作 上 (对列表、字符串、散列结构操作)
这里的一切讨论均基于python的redis-py库. 安装使用: pip install redis 然后去获取一个redis客户端: redis_conn = redis.Redis(host=R ...
- Python redis 简单介绍
Python redis 简单介绍 1.安装 终端输入: pip(or)pip3.6 install redis 安装成功 2.哈哈,发现我并没有redis服务可以访问,所以到这里,在本机安装了red ...
- 生产消费者模式与python+redis实例运用(基础篇)
根据这个图,我们举个简单的例子:假如你去某个餐厅吃饭,点了很多菜,厨师要一个一个菜的做,一个厨师不可能同时做出所有你点的菜,于是你有两个选择:第一个,厨师把所有菜都上齐了,你才开始吃:还有一个选择,做 ...
- python -- redis连接与使用
前面我们简单介绍了redis nosql数据库,现在我们在python里面来使用redis. 一.python连接redis 在python中,要操作redis,目前主要是通过一个python-red ...
- windows中实现python,redis服务自动重启(任务计划程序+bat脚本)
需求:银行电脑无法自动开机,只能 通过 应用相关服务每天自动重启的方式实现 服务更新并且防止服务假死,内存过大 等情况 相关工具:win10系统中,使用windows自带的任务计划程序 和 bat脚本 ...
- python redis分布式锁改进
0X01 python redis分布式锁通用方法 REDIS分布式锁实现的方式:SETNX + GETSET 使用Redis SETNX 命令实现分布式锁 python 版本实现上述思路(案例1) ...
- python redis之连接池的原理
python redis之连接池的原理 转载地址 什么是连接池 通常情况下, 当我们需要做redis操作时, 会创建一个连接, 并基于这个连接进行redis操作, 操作完成后, 释放连接, 一般情况下 ...
- Redis数据类型及其操作
redis数据类型即操作 1. 字符串 set 设置字符串 格式: set key value 例子: set name kainhuck get 获取字符串的值 格式: get key 例子: ge ...
- redis的一些操作
public class WnsRedisFactory { private static Cache pool = null; private static JedisConnectionFacto ...
随机推荐
- 13.Django模版
没什么好说的,看官方文档 https://docs.djangoproject.com/en/1.9/ref/templates/builtins/
- linux系统环境下搭建coreseek(+mmseg3) (good)
1.下载并解压coreseek软件,操作命令如下: wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz 说明:文件下 ...
- mysql索引学习----2----创建索引、修改索引、删除索引的命令语句
查看表中已经存在 index:show index from table_name; 创建和删除索引索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER ...
- 3django url name详解
打开urls.py from django.conf.urls import url from django.contrib import admin from calc import views a ...
- JETSON TK1 ~ 刷机和克隆固件
1:PC端的ubuntu. 要求必须是正常系统,不可以使用虚拟机.由于烧写过程采用刷机模式,虚拟机刷机易导致刷机问题. 2:驱动包.文件系统和源码下载 1.Driver package(驱动包,相当于 ...
- 3.09课·········for穷举和迭代
for循环拥有两类:穷举和迭代穷举:把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品.洗发水15元,香皂2元,牙刷5元.求刚好 ...
- Tornado--基于H5图片的上传
日记 好久没有分享过东西,一直在学习状态,学的并不好很多东西都没有,也写了很多demo,后续整理出来在分享,就不分享了,不为什么因为今天周六,好不容易双休,大早上的一个人醒来,刷刷知乎,听音乐.分享一 ...
- dedecms常用标签
下面总结了58种常见的标签调用,包括关键描述调用.指定调用栏目.列表文章调用.频道栏目调用.当前栏目名称.栏目导航调用.模板路径调用.网站标题调用.友情链接调用.网站版权调用.网站备案调用.当前位置调 ...
- Luogu-2521 [HAOI2011]防线修建
倒过来处理所有询问,就变成了一道动态凸包的裸题 吐槽一下这道题只要维护上凸壳就好了,我zz了没好好看题打了两个2333 // luogu-judger-enable-o2 #include<se ...
- Oracle的PL_SQL的结构
--PL/SQL的结构 declare --声明变量和常量关键字 v_name nvarchar2(); v_age integer;--常规变量声明 v_product table_name.col ...