php redis set集合操作,php对redis的set(集合)操作

news/2024/6/25 13:28:44

<?phprequire ('redistest.php');/*** Class setcache*集合类型的常用操作是向集合中加入或删除元素、判断某个元素是否存在等,由于集合类型在Redis内部是使用值为空的散列表(hash table)实现的,所以这些操作的时间复杂度都是0(1)。*/classsetcacheextendscache{/***向名称为key的set中添加元素value,如果value存在,丌写入,return false**@param$key string键名*@param$value键值*@returnbool true|false*/public functionsAdd($key,$value){return$this->redis->sAdd($key,$value);}/***删除名称为key的set中的元素value**@param$key string键名*@param$value键值*@returnbool true|false*/public functionsRem($key,$value){return$this->redis->sRem($key,$value);}/***将value元素从名称为key1的集合移到名称为key2的集合**@param$key1 string集合名*@param$key2 string集合名*@param$value值*@returnbool true|false*/public functionsMove($key1,$key2,$value){return$this->redis->sMove($key1,$key2,$value);}/***判断一个元素是否在集合中是一个时间复杂度为0(1)的操作,无论集合中有多少个元*素,SISMEMBER命令始终可以极快地返回结果。**@param$key string集合名*@param$value*@returnbool true|false*/public functionsIsMember($key,$value){return$this->redis->sIsMember($key,$value);}//sContains作用同sIsMember一样/***返回名称为key的set的元素个数 同sSize**@param$key string*@returnint返回集合中的数值*/public functionsCard($key){return$this->redis->sCard($key);}/***随机返回并删除名称为key的set中一个元素**@param$key string*@returnstring|bool返回set中的元素,如果set为空就返回false*/public functionsPop($key){return$this->redis->sPop($key);}/***随机返回名称为key的set中一个元素,不删除**@param$key string*@returnmixed*/public functionsRandMember($key){return$this->redis->sRandMember($key);}/***求两个集合的交集*@param$key1 string集合1*@param$key2 string集合2*@returnarray*/public functionsInter($key1,$key2){return$this->redis->sInter($key1,$key2);}/***将给定多个集合key之间的交集存储在指定的集合output中。如果指定的集合已经存在,则将其覆盖*下面只是两个*@param$output string集合*@param$key1 string集合*@param$key2 string集合*@returnint交集的个数*/public functionsInterStore($output,$key1,$key2){return$this->redis->sInterStore($output,$key1,$key2);}/***求多个集合的交集*@param$keyarray array*@returnarray*/public functionsInterArray($keyarray){$keystr='';foreach($keyarrayas$k){$keystr.='\''.$k.'\',';}$keystr=substr($keystr,0,-1);$str='$result=$this->redis->sInter('.$keystr.');';eval($str);return$result;}/***求多个集合的并集(三个集合)**@param$key1 string集合1*@param$key2 string集合2*@param$key3 string集合3*@returnarray*/public functionsUnion($key1,$key2,$key3){return$this->redis->sUnion($key1,$key2,$key3);}/***求并集并将并集保存到output的集合*@param$output要存储的集合*@param$key1 string集合1*@param$key2 string集合2*@param$key3 string集合3*@returnint并集的数目*/public functionsUnionStore($output,$key1,$key2,$key3){return$this->redis->sUnionStore($output,$key1,$key2,$key3);}/***求差集  (集合减去两个集合的交集)**  key1-key2*  {1, 2, 3}-{2, 3, 4}={1}*  {2, 3, 4}-{1, 2, 3}={4}*@param$key1 string*@param$key2 string*@returnarray* SDIFF setA setB setC计算顺序是先计算setA-setB,再计算结果与setC的差集*/public functionsDiff($key1,$key2){return$this->redis->sDiff($key1,$key2);}/***返回集合中被的所有元素*同sGetMembers*@param$key string集合*@returnarray*/public functionsMembers($key){return$this->redis->sMembers($key);}/***排序分页(直接拿来用)* sort* $redis->delete('s');* $redis->sadd('s', 5); $redis->sadd('s', 4); $redis->sadd('s', 2); $redis->sadd('s', 1); $redis->sadd('s', 3); var_dump($redis->sort('s')); // 1,2,3,4,5* var_dump($redis->sort('s', array('sort' => 'desc'))); // 5,4,3,2,1* var_dump($redis->sort('s', array('sort' => 'desc', 'store' => 'out'))); // (int)5*/}


http://lihuaxi.xjx100.cn/news/242544.html

相关文章

转:【CSS/JS学习】如何实现单行/多行文本溢出的省略(...)--老司机绕过坑道的正确姿势...

本文来源&#xff1a;http://www.cnblogs.com/penghuwan/p/6682303.html 引言&#xff1a;写前端UI的朋友们也许都遇到过这样的问题&#xff1a;我们需要实现这样一个需求&#xff0c;在一个父级元素中隐藏一个可能过长的文本&#xff1a;这个文本可能是单行的&#xff1a;也可…

布尔定理及证明(完整版)

这篇文章的目的是以布尔代数公理证明定理。 对偶原理&#xff1a;0with1, with 互换以后&#xff0c;公理&#xff08;定理&#xff09;任然成立。 布尔代数的公理如下 单变量的布尔代数定理如下 单变量的布尔代数定理很容易用真值表证明。 多变量的布尔定理如下 交换律&…

什么是客户端渲染?

什么是客户端渲染? 客户端渲染&#xff0c;即传统的单页面应用(SPA)模式&#xff0c;Vue.js 构建的应用程序默认情况下是-个HTML模板页面&#xff0c;只有一个id为app的根容器&#xff0c;然后通过webpack打包生成CSs、js等资源文件&#xff0c;浏览器加载、解析来渲染HTML。 …

【面试】重建二叉树

一、描述 输入某二叉树的前序遍历和中序遍历的结果&#xff0c;请重建出该二叉树&#xff0c;假设输入的前序遍历和中序遍历的结果中都不含重复的数字&#xff0c;例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}&#xff0c;则重建出该二叉树。二叉树结…

php 对象json中文乱码,解决php json中文乱码问题

php json中文乱码的解决办法&#xff1a;首先将类中的中文字段进行url编码&#xff1b;然后再将对象进行json编码&#xff1b;最后进行url解码即可解决乱码问题。PHP中json中文乱码问题解决问题&#xff1a;众所周知使用json_encode可以方便快捷地将对象进行json编码&#xff0…

Android Broadcast Receiver

Android中的广播主要分为两种&#xff1a;标准广播和有序广播 标准广播&#xff1a;一种完全异步执行的广播&#xff0c;广播发出后&#xff0c;所有的广播接收器几乎都会在同一时刻接收到这条广播&#xff0c;他们之间没有任何先后顺序可言。 有序广播&#xff1a;是一种同步执…

LR分析法从理解到运用

1、 LR分析器 解释&#xff1a; 分析栈包括符号栈和相应状态栈 分析表包括ACTION表和GOTO表 Ⅰ动作表元素action[Si,aj] 表示当前栈顶状态为S&#xff0c;输入符号为a时所执行的动作。有四种情况&#xff1a;S(移进)&#xff0c;r(归约)&#xff0c;acc(接受)&#xff0c;erro…

UI设计培训主要学习哪些内容

近几年&#xff0c;UI设计行业的不断发展&#xff0c;很多公司对UI设计师的要求越来越高&#xff0c;想要通过自学学习UI设计的同学是非常难的&#xff0c;要想后期能够胜任UI设计师这个岗位&#xff0c;还是进行系统的学习比较好&#xff0c;UI设计培训机构可以满足不同学员的…