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. CSS的拾遗(1)

    CSS的拾遗(1) 1.padding: (1)定义:在一个声明中设置所有内边距属性 (2)用法: 例子 1:上,右,下,左 padding:10px 5px 15px 20px; 上内边距是 10p ...

  2. K8s validating data: the server could not find the requested resource ... with --validate=false

    转载: https://blog.csdn.net/yangchao1125/article/details/106193107/

  3. 使用Android studio配置软件签名,并在车机安装

    系统级APP,可在Androidmanifest.xml中配置属性,并使用系统级签名. 1. 签名方式 1.1 bulid.gradle(:app)中添加签名信息 1.2 使用Android stud ...

  4. 在idea中查看jar包源码

    文章目录 准备jar包 idea打开文件夹 最后一步 准备jar包 例如,我准备看resin的jar,在桌面准备了一份 idea打开文件夹 在idea中file====>open=====> ...

  5. 用Docker搭建GIS本地化服务

    在Linux系统上安装docker 1. 脚本安装(安装的是最新版,也可能是不稳定版) wget -qO- https://get.docker.com/ | sh sudo usermod -aG ...

  6. react useGetObjState

    import {useCallback, useRef, useState} from 'react';function useGetObjState(initialState = {}) { con ...

  7. Wix打包升级包

    前面我们已经知道怎么制作一个完整安装包了,但我们的软件往往不能一次性就满足客户的需要,当客户需要我们给软件进行升级的时候,我们应该怎么做呢? 在这之前,我们有必要了解下Windows Installe ...

  8. [.Net] 【笔记】基于.NET平台常用的框架整理(转载,侵删)

    分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架. Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度. Redis:是一个高性能的K ...

  9. 手机安装APK文件,出现-应用未安装-软件包无效-安装包异常

    在项目的根的gradle.properties文件中添加 android.injected.testOnly=false 即可. 猜想:因为是在打debug包,然后这个属性变为了true?然后手机会因 ...

  10. JIT和AOT的区别

    http://net-informations.com/faq/qk/jit.htm Compilers are tools that convert human readable text into ...