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. docker 搭建 nginxconfig.io 文档

    docker镜像仓库 https://hub.docker.com/r/devopstestlab/nginxconfig.io 获取镜像 docekr pull devopstestlab/ngin ...

  2. ts的接口和泛型的基本语法

    一.接口 1.接口定义 接口是一种规范的定义,它定义行为和规范,在程序设计中接口起到限制和规范的作用. 2.接口的声明与使用 //声明对象类型接口 interface Person {   name: ...

  3. postgresql源码解读

    大量模块源码解读 https://blog.csdn.net/cuichao1900?type=blog 存储管理(内存管理.外存管理)源码解读,每行都有注释 https://blog.csdn.ne ...

  4. zabbix中文显示乱码解决

    问题zabbix使用中文显示,"监测-->图形"查看资源使用情况时会有乱码 解决问题1.修改配置文件(文件位置:$zabbix_path/include/defines.in ...

  5. Nucmer+LINKVIEW实现序列水平的共线性分析

    https://www.cnblogs.com/johnsonzzz/p/15151634.html https://github.com/YangJianshun/LINKVIEW 可以绘制两个基因 ...

  6. 安装zookeeper 和 kafka

    本文用到的同步脚本   https://www.cnblogs.com/sdgtxuyong/p/16907986.html 一 . 安装zookeeper 修改hosts文件,将test1,test ...

  7. tp项目部署到宝塔,运行nginx时无法访问首页之外的页面

    http://www.upwqy.com/details/254.html tp项目 部署到宝塔里面 运行环境nginx 直接访问首页是可以访问的.但是请求其他的接口的时候 报404 . 需要把下面这 ...

  8. 10 个常用的 JS 工具库,80% 的项目都在用!

    Day.js 一个极简的处理时间和日期的 JavaScript 库,和 Moment.js 的 API 设计保持一样, 但体积仅有2KB. npm install dayjs 基本用法 import ...

  9. js时间戳转换

    第一个参数传时间戳,第二个连接符可以看你的心情,我喜欢'-' formatDate(value, spe = '/') { value = value * 1000 //10位数时间戳要乘1000 1 ...

  10. PyMySQL创建

    title: PyMySQL创建 author: 杨晓东 permalink: PyMySQL创建 date: 2021-10-02 11:27:04 categories: - 投篮 tags: - ...