<?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*/}

php redis set集合操作,php对redis的set(集合)操作相关推荐

  1. netcore redis 存储集合_.net core redis的全套操作

    摘要: 发布订阅 2.在.netcore中的调用订阅:redisManager.Subscribe("dylan",(channel,value)=>{Console.Wri ...

  2. python操作redis set_Python操作redis学习系列之(集合)set,redis set详解 (六)

    #-*- coding: utf-8 -*- importredis r= redis.Redis(host="126.56.74.190",port=639,password=& ...

  3. Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  4. 为什么redis取出来是null_跳表:为什么Redis一定要用跳表来实现有序集合

    上两节我们讲了二分查找算法.当时我讲到,因为二分查找底层依赖的是数组随机访问的特性,所以只能用数组来实现.如果数据存储在链表中,就真的没法用二分查找算法了吗? 实际上,我们只需要对链表稍加改造,就可以 ...

  5. Redis概述_使用命令对redis的数据进行增删改查_Jedis连接redis进行数据操作_redis进行数据缓存案例

    学习目标 redis 概念 下载安装 命令操作 1. 数据结构 持久化操作 使用Java客户端操作redis Redis 前言(从百度上抄的, 看看了解一下, 懒得排版了) 1. 概念: redis是 ...

  6. jedis操作set_Jedis对redis的五大类型操作代码详解

    本篇主要阐述Jedis对redis的五大类型的操作:字符串.列表.散列.集合.有序集合. JedisUtil 这里的测试用例采用junit4进行运行,准备代码如下: private static fi ...

  7. redis中存集合_如何在Redis中管理集合

    redis中存集合 介绍 (Introduction) Redis is an open-source, in-memory key-value data store. Sets in Redis a ...

  8. python_day10のPython操作 RabbitMQ、Redis、Memcache

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  9. Spring中RedisTemplate方法中,redis相关操作笔记。[redis生成指定长度自增批次号,删除、设置过期时间等]

    Spring中RedisTemplate方法中,redis相关操作笔记. redis获取自增批次号 // opsForValue()生成long UUID = redisTemplate.opsFor ...

最新文章

  1. Partial Class部分类
  2. java自学入门心得体会 0.1
  3. Makefile: -I(大写i)、-L、-l
  4. [9月29日的脚本] 枚举SharePoint列表(PowerShell)
  5. rs.getDate 返回类型问题
  6. 数码相机专业术语解答
  7. Linux C/C++编程之(十六)进程及进程控制
  8. 机器人对话常用语模板_电销助手——智能电话机器人
  9. XMind8update6 补丁
  10. win7资源监视器介绍
  11. 程序员应该看的十大电影
  12. linux笔记:使用conda命令管理包、管理环境详细讲解
  13. directx修复工具win7_win8下怎么装win7 win8下装win7方法【详细步骤】
  14. 厦门大学-机器学习-苏松志
  15. java中整数的整数次方_数值的整数次方java
  16. 天翎携手群晖助力电商行业文档管理
  17. P1551 亲戚(并查集)
  18. 百分点感知智能实验室:计算机视觉理论和应用研究
  19. 排序(下):归并排序和快速排序
  20. 【计算机视觉】opencv姿态解算4 视觉导航 单目特征检测与实时位姿

热门文章

  1. 浅谈网络协议(四) IP的由来--DHCP与PXE
  2. 图解5G NR帧结构
  3. Spring事务管理只对出现运行期异常进行回滚
  4. ThinkPHP子类继承Controller类的注意事项
  5. 《虚拟化与云计算》读书感(三)数据中心的概述
  6. Windows Server 2008 R2 之二十九故障转移群集(一)(
  7. Lumen / Laravel 5.5 使用网易邮箱 SMTP 发送邮件
  8. 1.试述大数据对思维方式的重要影响。 2.详细阐述大数据、云计算、物联网之间的区别与联系。 3.简述你对大数据应用与发展的看法,以及你在这次大数据浪潮中想扮演什么角色。...
  9. CentOS 6.9下配置安装KVM
  10. Wedge 100-32X 100GbE Data Center Switch