python操作redis缓存-Set集合类型,可以理解为不能有重复元素的列表

sadd(name,values)name对应的集合中添加元素

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('adc8868','123')                                         #sadd(name,values)name对应的集合中添加元素

f = r.smembers('adc8868')                                       #获取name对应的集合的所有成员
print(f)
#返回
#{b'123'}

scard(name)获取name对应的集合中元素个数

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('adc8868','123')                                         #sadd(name,values)name对应的集合中添加元素

f = r.scard('adc8868')                                          #scard(name)获取name对应的集合中元素个数
print(f)
#返回
#1

sdiff(keys, *args)在第一个name对应的集合中且不在其他name对应的集合的元素集合

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('adc8861','123','456')                                   #sadd(name,values)name对应的集合中添加元素
r.sadd('adc8862','123','456','789')f = r.sdiff('adc8862','adc8861')                                #sdiff(keys, *args)在第一个name对应的集合中且不在其他name对应的集合的元素集合
print(f)
#返回
#{b'789'}

sdiffstore(dest, keys, *args)获取第一个name对应的集合中且不在其他name对应的集合,再将其新加入到dest对应的集合中

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('adc8861','123','456')                                   #sadd(name,values)name对应的集合中添加元素
r.sadd('adc8862','123','456','789')f = r.sdiffstore('adc','adc8862','adc8861')                    #sdiffstore(dest, keys, *args)获取第一个name对应的集合中且不在其他name对应的集合,再将其新加入到dest对应的集合中
print(f)n = r.smembers('adc')                                          #获取name对应的集合的所有成员
print(n)
#返回
# 1
# {b'789'}

sinter(keys, *args)获取多个集合与第一个集合里交集的数据,也就是相同的数据

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('rdi1','123','456','851')                                #sadd(name,values)name对应的集合中添加元素
r.sadd('rdi2','123','456','789')n = r.sinter("rdi1","rdi2")                                     #sinter(keys, *args)获取多个集合与第一个集合里交集的数据,也就是相同的数据
print(n)#返回
#{b'123', b'456'}

sinterstore(dest, keys, *args)获取多个集合与第一个集合里交集的数据,也就是相同的数据,在将其加入到dest对应的集合中

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('rdi1','123','456','851')                                #sadd(name,values)name对应的集合中添加元素
r.sadd('rdi2','123','456','789')n = r.sinterstore('adc',"rdi1","rdi2")                           #sinterstore(dest, keys, *args)获取多个集合与第一个集合里交集的数据,也就是相同的数据,在将其加入到dest对应的集合中
print(n)n = r.smembers('adc')                                          #获取name对应的集合的所有成员
print(n)
#返回
# 2
# {b'123', b'456'}

sismember(name, value)检查value是否是name对应的集合的成员

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('rdi1','123','456','851')                                #sadd(name,values)name对应的集合中添加元素
r.sadd('rdi2','123','456','789')n = r.sismember("rdi1",'851')                           #sismember(name, value)检查value是否是name对应的集合的成员
print(n)#返回
#True

smembers(name) 获取name对应的集合的所有成员

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('rdi1','123','456','851')                                #sadd(name,values)name对应的集合中添加元素
r.sadd('rdi2','123','456','789')n = r.smembers("rdi1")                           #smembers(name) 获取name对应的集合的所有成员
print(n)#返回
#{b'123', b'851', b'456'}

smove(src, dst, value)将某个成员从一个集合中移动到另外一个集合

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('rdi1','123','456','851')                                #sadd(name,values)name对应的集合中添加元素
r.sadd('rdi2','123','456','789')n = r.smove("rdi1",'rdi2','851')                           #smove(src, dst, value)将某个成员从一个集合中移动到另外一个集合
print(n)#返回
#True

spop(name)从集合的右侧(尾部)移除一个成员,并将其返回

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('rdi1','123','456','851')                                #sadd(name,values)name对应的集合中添加元素
r.sadd('rdi2','123','456','789')n = r.spop("rdi1")                           #spop(name)从集合的右侧(尾部)移除一个成员,并将其返回
print(n)#返回
#b'851'

srandmember(name, numbers)从name对应的集合中随机获取 numbers 个元素

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('rdi1','123','456','851')                                #sadd(name,values)name对应的集合中添加元素
r.sadd('rdi2','123','456','789')n = r.srandmember("rdi1",number=2)                           #srandmember(name, numbers)从name对应的集合中随机获取 numbers 个元素
print(n)#返回
#[b'851', b'123']

srem(name, values)在name对应的集合中删除某些值

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('rdi1','123','456','851')                                #sadd(name,values)name对应的集合中添加元素
r.sadd('rdi2','123','456','789')n = r.srem("rdi1",'456')                           #srem(name, values)在name对应的集合中删除某些值
print(n)#返回
#1

sunion(keys, *args)获取多个name对应的集合的并集,并集后相同的数据只显示一个

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('rdi1','123','456','851')                                #sadd(name,values)name对应的集合中添加元素
r.sadd('rdi2','123','456','789')n = r.sunion("rdi1",'rdi2')                           #sunion(keys, *args)获取多个name对应的集合的并集,并集后相同的数据只显示一个
print(n)#返回
#{b'456', b'123', b'789', b'851'}

sunionstore(dest,keys, *args)获取多个name对应的集合的并集,并集后相同的数据只取一个,并将结果保存到dest对应的集合中

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('rdi1','123','456','851')                                #sadd(name,values)name对应的集合中添加元素
r.sadd('rdi2','123','456','789')r.sunionstore('adc',"rdi1",'rdi2')               #sunionstore(dest,keys, *args)获取多个name对应的集合的并集,并集后相同的数据只取一个,并将结果保存到dest对应的集合中
n = r.smembers("adc")                           #smembers(name) 获取name对应的集合的所有成员
print(n)#返回
#{b'456', b'851', b'123', b'789'}

sscan(name, cursor=0, match=None, count=None)同字符串的操作,用于增量迭代分批获取元素,避免内存消耗太大【推荐使用下面那个方法】
  name,redis的name
  cursor,游标(基于游标分批取获取数据)
  match,匹配指定key,默认None 表示所有的key
  count,每次分片最少获取个数,默认None表示采用Redis的默认分片个数
  如:
  第一次:cursor1, data1 = r.sscan('name', cursor=0, match=None, count=None)
  第二次:cursor2, data2 = r.sscan('name', cursor=cursor1, match=None, count=None)
  ...
  直到返回值cursor的值为0时,表示数据已经通过分片获取完毕

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('rdi1','123','456','851')                                #sadd(name,values)name对应的集合中添加元素
r.sadd('rdi2','123','456','789')#sscan(name, cursor=0, match=None, count=None)用于增量迭代分批获取元素,避免内存消耗太大
cursor1, data1 = r.sscan('rdi1',cursor=0,match='*1',count=None)       #获取name对应的元素,匹配以1结尾的元素
print(cursor1, data1)                                                 #返回两个值,第一个是获取的游标位置,第二个是获取到的数据

cursor2, data2 = r.sscan('rdi1',cursor=cursor1,match='*2',count=None)    #第二次获取,游标使用第一次返回的游标位置,使其向后继续
print(cursor2, data2)#返回
#0 [b'851']
#0 []

sscan_iter(name, match=None, count=None)用于增量迭代分批获取元素,避免内存消耗太大【推荐】
  name,redis的name
  match,匹配指定key,默认None 表示所有的key
  count,每次分片最少获取个数,默认None表示采用Redis的默认分片个数

#!/usr/bin/env python
# -*- coding:utf-8 -*-import redis                #导入操作redis模块

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)  #配置连接池连接信息

r = redis.Redis(connection_pool=pool)                           #连接连接池
r.sadd('rdi1','123','456','851')                                #sadd(name,values)name对应的集合中添加元素
r.sadd('rdi2','123','456','789')#sscan_iter(name, match=None, count=None)用于增量迭代分批获取元素,避免内存消耗太大
n = r.sscan_iter('rdi1',match='*1',count=None)       #获取name对应的元素,匹配以1结尾的元素
print(n)                                             #返回获取到的数据对象,需要循环for i in n:print(i)                                         #循环出获取到的数据#返回
# <generator object StrictRedis.sscan_iter at 0x0000023F18C94570>
# b'851'

第二百九十八节,python操作redis缓存-Set集合类型,可以理解为不能有重复元素的列表...相关推荐

  1. 第二百九十四节,Redis缓存-Redis安装

    redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sor ...

  2. python redis缓存_第二百九十五节,python操作redis缓存-字符串类型

    python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...

  3. python 操作redis之——有序集合(sorted set) (七)

    #coding:utf8 import redis r =redis.Redis(host="23.226.74.190",port=63279,password="66 ...

  4. python 操作redis之五(集合)

    集合使用与内部实现原理 集合类型 (Set) 是一个无序并唯一的键值集合. 之所以说集合类型是一个无序集合,是因为它的存储顺序不会按照插入的先后顺序进行存储,如下代码所示: 127.0.0.1:637 ...

  5. Python 操作 redis

    官网命令(英文)列表:http://redis.io/commands Redis 教程:http://www.redis.net.cn/tutorial/3501.html Redis 命令参考:h ...

  6. python 操作redis之——HyperLogLog (八)

    #coding:utf8 import redis # python 操作redis之--HyperLogLog r =redis.Redis(host="33.23.724.12190&q ...

  7. python操作redis set_Python操作redis学习系列之(集合)set,redis set详解 (六)

    #-*- coding: utf-8 -*- importredis r= redis.Redis(host="126.56.74.190",port=639,password=& ...

  8. go操作redis之go-redis,python操作redis之redis

    目录 go操作redis go-redis安装 连接方式 单机连接 TLS连接模式 Redis 集群连接 Redis 哨兵模式连接 基本使用 执行任意命令 redis.Nil zset操作 扫描或遍历 ...

  9. python操作redis用法详解

    1.简单介绍 安装redis pip install redis Redis是一个基于内存的高效的键值型非关系型数据库,存取效率极高,而且支持多种存储数据结构,使用也非常简单.本节中,我们就来介绍一下 ...

  10. python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用

    python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装 安装及简单使用:https://github.com/andymccurdy/ ...

最新文章

  1. GitLab首席执行官Sid Sijbrandij畅谈当前开发实践
  2. 【Linux导论】通过图形接口配置系统(System Configuration from the Graphical Interface)
  3. HtmlAgilityPack中SelectSingleNode的XPath和CSS选择器
  4. JVM内存压缩开启/不开启各占几个字节
  5. Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据
  6. C语言异常处理之 setjmp()和longjmp()
  7. Navicat执行sql文件
  8. 计算机dll修复工具,DLL修复工具有哪些?DLL修复工具盘点
  9. Glide4.0 centerCrop属性和圆角 冲突
  10. 恩智浦智能车(CNYouth)
  11. 标志设计|标识设计|商标设计|logo设计|的起源
  12. 从广告图到广告落地页
  13. Ubuntu18.04安装Fcitx中文输入法
  14. 原生Android设置sim卡锁定,开启SIM卡密码保护
  15. UltraEdit最新版v27软件下载 程序员必用高级文本编辑器
  16. wordpress配置菜单栏
  17. 四,产品创建和开发板连接天猫精灵后台
  18. java提供按摩比较复数大小_复数类实现 - kb
  19. App渠道打包的最佳攻略,一次解决打包难题
  20. mongodb 导入导出数据

热门文章

  1. 超级实用的内存泄漏归纳分析心得
  2. python基础篇——字典
  3. 去重 list_List 去除重复数据的 5 种正确姿势!
  4. 安卓如何让listview在上下两个按钮之间充满_如何提高超声波塑胶焊接机生产效率...
  5. go代码--数据结构
  6. asp 保存listbox已有的值_使用Asp.net实现信息管理系统的数据统计功能
  7. linux ls 输出格式,(转)linux 中使用ls指定输出时间格式
  8. python如何将数据生成excel_Python如何将数据导出excel的技巧分享
  9. 有多个script怎么放一起_在南方我们觉得儿菜的特种蔬菜,对它得如何处理?怎么做出美味?...
  10. 内存映射函数remap_pfn_range学习——示例分析(1)