PHP Redis - Set(集合)
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(集合)的更多相关文章
- Redis 有序集合(sorted set)
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序. 有序 ...
- redis 有序集合(zset)函数
redis 有序集合(zset)函数 zAdd 命令/方法/函数 Adds the specified member with a given score to the sorted set stor ...
- redis学习-集合set常用命令
redis学习-集合set常用命令 1.sadd:添加一个元素到集合中(集合中的元素无序的并且唯一) 2.smembers:查看集合中所有的元素(上图事例) 3.srem:删除结合中指定的元素 4 ...
- Redis有序集合
Redis有序集合类似Redis集合存储在设定值唯一性.不同的是,一个有序集合的每个成员带有分数,用于以便采取有序set命令,从最小的到最大的分数有关. Redis 有序set添加,删除和测试中的O( ...
- Redis 操作集合数据
Redis 操作集合数据: > sadd set1 Tom // sadd 用于往集合中添加元素 (integer) > sadd set1 John (integer) > sad ...
- Redis 有序集合(sorted set),发布订阅,事务,脚本,连接,服务器(三)
Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...
- redis有序集合的使用
Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...
- redis有序集合数据类型---sortedset
一.概述 redis有序集合和集合一样,也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数. redis正式通过分数来为集合中的重圆进行从小到大的 ...
- 数据结构与算法简记--redis有序集合实现-跳跃表
跳表 定义 为一个值有序的链表建立多级索引,比如每2个节点提取一个节点到上一级,我们把抽出来的那一级叫做索引或索引层.如下图所示,其中down表示down指针,指向下一级节点.以此类推,对于节点数为n ...
- 基于redis有序集合,实现简单的延时任务
基于redis有序集合,实现简单的延时任务 延时任务的场景很多,开发过程中我们经常会遇到,比如说: 1.订单未付款,5分钟后自动取消,这是电商网站非常普遍的需求: 2.用户创建订单不付款,3分钟后自动 ...
随机推荐
- nodeJs 写个爬虫小玩意
内容 起一个服务,爬某个网站的数据(我这里爬了个夕阳红游戏交易网站的数据),页面看到我要爬的内容 代码 1 //引入内置的http包 2 var http = require('http'); 3 c ...
- android判断是否连接wifi跟网络状态的判断及wifi信号强度的方法
场景:android判断是否连接wifi跟网络状态的判断 android判断是否连接wifi和网络状态的判断 // 是否连接WIFI public static boolean isWifiConne ...
- (0319) SV 中的 iff 事件控制
https://blog.csdn.net/yinyeyy/article/details/111086864
- cgroup与docker
1.使用 cgroup namespace 需要内核开启 CONFIG_CGROUPS 选项.可通过以下方式验证: 1 root@container:~/namespace_test# grep CO ...
- 2023Hgame
2023Hgame Shared Diary 源代码先放一下 const express = require('express'); const bodyParser = require('body- ...
- idea如何引入外部jar包
原文转载:https://blog.csdn.net/weixin_46949892/article/details/121602175
- springcloud(五) - 网关gateway
功能介绍 springcloud gateway提供一种以路由的方式,基于Filter链的方式提供网关的基本功能.如安全.监控.限流. 网关:将不同协议的网络段连接到一起的设备,外网进入内网的入口,对 ...
- CCCC L3-032 关于深度优先搜索和逆序对的题应该不会很难吧这件事 【树状数组】
https://pintia.cn/problem-sets/994805046380707840/exam/problems/1518582895035215872 题意 给你一棵树,给定树根,要求 ...
- centos已经安装了python2,同时安装python3
安装相关软件包: yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel ...
- VMware VirtualCenter Servere服务不能启动
故障现象现象:VMware VirtualCenter Servere服务不能启动 解决办法:进入%programdata%\VMware\VMwareVirtualCenter\Logs目录下面. ...