Redis 的 set 无序集合,与 list 类似,特殊之处在于 set 可以自动排重,不会出现重复数据

集合中最大的成员数为 232-1 (4294967295, 每个集合可存储40多亿个成员)。

set 支持判断某个成员是否在一个集合,list 是没有的

特征:元素不重复,保持唯一性;无序,不能使用索引(下标)操作

添加元素到集合(sAdd)

$redis->sAdd('user_name', 'Beverly');
$redis->sAdd('user_name', 'Black');
$redis->sAdd('user_name', 'Blackwell');

移动指定成员元素到新集合(Smove)

// 将指定成员 Beverly 元素从 name 集合移动到 new_name 集合
$redis->Smove('user_name','new_key_name','Beverly');

移除并返回 集合中的一个随机元素(sPop)

// sPop(key,[count])
// 从集合中随机取出元素的,[count]要取出多少个数据,默认是1
$redis->sPop('user_name');

返回集合中的一个随机元素(Srandmember)

// Srandmember(set_key,[count]) 从集合中随机取出元素
// count 要取出多少个数据,默认是1
// 如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个数元素的数组,数组中的元素各不相同
// 如果 count 大于等于集合基数,那么返回整个集合
// 如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值
$redis->Srandmember('user_name');

删除集合里指定的值(sRem)

// 移除集合中的一个或多个成员元素,不存在的成员元素会被忽略
$redis->sRem('user_name', 'Blackwell', 'Black');

迭代集合(sScan)

//sScan(KEY ,[MATCH pattern],[COUNT]) 迭代集合键中的元素 --- //模糊搜索相对的元素
//参数:key,迭代器变量,匹配值,每次返回元素数量(默认为10个)
$redis->sscan('user_name', $it, 'B*', 5);

获取所有成员(sMembers)

$redis->sMembers('user_name');

获取集合元素个数(sCard)

$redis->sCard('user_name');

并集/差集/交集(sUnion/Sunionstore/sDiff/sDiffstore/sInter/sInterstore)

$redis->sUnion('user_name', 'set_key_second');// 并集
// 并集,将给定集合的并集存储在指定的集合中。如果指定的集合已经存在,则将其覆盖
$redis->Sunionstore('user_name','set_key','set_key_second');
// 差集
$redis->sDiff('user_name', 'set_key_second');
// 差集,将给定集合之间的差集存储在指定的集合中。如果指定的集合已存在,则会被覆盖
$redis->sDiffstore('user_name','set_key','set_key_second');
// 交集
$redis->sInter('user_name', 'set_key_second');
// 交集,将给定集合之间的交集存储在指定的集合中。如果指定的集合已经存在,则将其覆盖
$redis->sInterstore('user_name','set_key','set_key_second');

判断元素是否是集合的成员(Sismember)

$redis->Sismember('user_name','小A');

PHP Redis - Set(集合)的更多相关文章

  1. Redis 有序集合(sorted set)

    Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序. 有序 ...

  2. redis 有序集合(zset)函数

    redis 有序集合(zset)函数 zAdd 命令/方法/函数 Adds the specified member with a given score to the sorted set stor ...

  3. redis学习-集合set常用命令

    redis学习-集合set常用命令   1.sadd:添加一个元素到集合中(集合中的元素无序的并且唯一) 2.smembers:查看集合中所有的元素(上图事例) 3.srem:删除结合中指定的元素 4 ...

  4. Redis有序集合

    Redis有序集合类似Redis集合存储在设定值唯一性.不同的是,一个有序集合的每个成员带有分数,用于以便采取有序set命令,从最小的到最大的分数有关. Redis 有序set添加,删除和测试中的O( ...

  5. Redis 操作集合数据

    Redis 操作集合数据: > sadd set1 Tom // sadd 用于往集合中添加元素 (integer) > sadd set1 John (integer) > sad ...

  6. Redis 有序集合(sorted set),发布订阅,事务,脚本,连接,服务器(三)

    Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...

  7. redis有序集合的使用

    Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...

  8. redis有序集合数据类型---sortedset

    一.概述 redis有序集合和集合一样,也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数. redis正式通过分数来为集合中的重圆进行从小到大的 ...

  9. 数据结构与算法简记--redis有序集合实现-跳跃表

    跳表 定义 为一个值有序的链表建立多级索引,比如每2个节点提取一个节点到上一级,我们把抽出来的那一级叫做索引或索引层.如下图所示,其中down表示down指针,指向下一级节点.以此类推,对于节点数为n ...

  10. 基于redis有序集合,实现简单的延时任务

    基于redis有序集合,实现简单的延时任务 延时任务的场景很多,开发过程中我们经常会遇到,比如说: 1.订单未付款,5分钟后自动取消,这是电商网站非常普遍的需求: 2.用户创建订单不付款,3分钟后自动 ...

随机推荐

  1. (0807) import 与 include文件

    1)验证中filelist以及package https://blog.csdn.net/geter_CS/article/details/125689476 总结来说:规则是,要想使用某个文件内容, ...

  2. GIS空间分析和建模复习重点1

    1.对空间分析的理解(对概念的理解) 空间分析是为了解答地理空间问题而进行的数据分析与挖掘,是GIS的核心.研究对象为空间目标(具有空间特性(位置,分布,形态,空间关系(距离,方位,拓扑)),属性特性 ...

  3. 关于DVWA踩坑

    部署好DVWA开始欢天喜地用起来,结果有个问题,不管怎么设置这个安全等级,都显示为Impossible 原因也很显然 其实我并不太理解为什么这里要放在cookie里面,而且还放了两条. 处理方式也很明 ...

  4. 关于matlab2011b 32bit无法成功激活

    matlab2011b版本已经很少见了 下载链接:Matlab_R2011B.Win32.iso_免费高速下载|百度网盘-分享无限制 (baidu.com) 解决办法:(参考原博) (43条消息) M ...

  5. 数据库可视化---grafana的简单使用

    简介 grafana可以连接各种数据源, 并通过给定的SQL语句做数据的定时统计和web大屏展示,也可以对外提供API进行展示, 类似这样 内含多种不同类型图表, 可以涵盖很多种监控需求, 报表可视化 ...

  6. 【NPDP专项练习】第七章 产品生命周期管理

    第七章 产品生命周期管理 1.以下哪一项是产品生命周期缩短的原因之一? A 技术停滞不前 B 减少竞争 C 顾客要求更高 D 沟通障碍正在增加 答案:C 解析 A技术持续进步:B竞争加剧:D沟通增加 ...

  7. BIP设计器代码不生效的问题解决方案

    bip高级设计器里的前端代码:0租户问题解决在iuap_yonbuilder_service库里的hpa_extcode表hpa_extcode表里搜索billno字段,对应高级设计器里的单据编码拿到 ...

  8. Linux的stat命令结果说明

    There are 3 kind of "timestamps": Access - the last time the file was read Modify - the la ...

  9. Linux firewall 命令

    常用命令 开启端口命令 firewall-cmd --zone=public--add-port=443/tcp --permanent --zone  #作用域 --add-port=80/tcp ...

  10. go 更新依赖库到最新版本

    go 怎么更新依赖库到最新版本 遇到这么一个问题:我自己的一个程序依赖自己写的一个库,然后修改了库,程序这边想要更新库,却怎么也更新不上 删除mod.sum文件里相关库的信息 使用find / -na ...