easyswoole - 基于swoole扩展实现的一款高性能php框架

Redis 有序集合(sorted set)

Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重復(fù)的成員。

不同的是每個元素都會關(guān)聯(lián)一個double類型的分?jǐn)?shù)。redis正是通過分?jǐn)?shù)來為集合中的成員進(jìn)行從小到大的排序。

有序集合的成員是唯一的,但分?jǐn)?shù)(score)卻可以重復(fù)。

集合是通過哈希表實(shí)現(xiàn)的,所以添加,刪除,查找的復(fù)雜度都是O(1)。 集合中最大的成員數(shù)為 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。

操作方法

方法列表

方法名稱 參數(shù) 說明 備注
zAdd $key, $score1, $member1, ...$data 向有序集合添加一個或多個成員,或者更新已存在成員的分?jǐn)?shù)
zCard $key 獲取有序集合的成員數(shù)
zCount $key, $min, $max 計(jì)算在有序集合中指定區(qū)間分?jǐn)?shù)的成員數(shù)
zInCrBy $key, $increment, $member 有序集合中對指定成員的分?jǐn)?shù)加上增量 increment
zInTerStore $destination, array $keys, array $weights = [], $aggregate = 'SUM' 計(jì)算給定的一個或多個有序集的交集并將結(jié)果集存儲在新的有序集合 key 中
zLexCount $key, $min, $max 在有序集合中計(jì)算指定字典區(qū)間內(nèi)成員數(shù)量
zRange $key, $start, $stop, $withScores = false 通過索引區(qū)間返回有序集合指定區(qū)間內(nèi)的成員
zRangeByLex $key, $min, $max, ...$data 通過字典區(qū)間返回有序集合的成員
zRangeByScore $key, $min, $max, array $options 通過分?jǐn)?shù)返回有序集合指定區(qū)間內(nèi)的成員
zRank $key, $member 返回有序集合中指定成員的索引
zRem $key, $member, ...$members 移除有序集合中的一個或多個成員
zRemRangeByLex $key, $min, $max 移除有序集合中給定的字典區(qū)間的所有成員
zRemRangeByRank $key, $start, $stop 移除有序集合中給定的排名區(qū)間的所有成員
zRemRangeByScore $key, $min, $max 移除有序集合中給定的分?jǐn)?shù)區(qū)間的所有成員
zRevRange $key, $start, $stop, $withScores = false 返回有序集中指定區(qū)間內(nèi)的成員,通過索引,分?jǐn)?shù)從高到低
zRevRangeByScore $key, $max, $min, array $options 返回有序集中指定分?jǐn)?shù)區(qū)間內(nèi)的成員,分?jǐn)?shù)從高到低排序
zRevRank $key, $member 返回有序集合中指定成員的排名,有序集成員按分?jǐn)?shù)值遞減(從大到小)排序
zScore $key, $member 返回有序集中,成員的分?jǐn)?shù)值
zUnionStore $destination, array $keys, array $weights = [], $aggregate = 'SUM' 計(jì)算給定的一個或多個有序集的并集,并存儲在新的 key 中
zScan $key,&$cursor, $pattern=null, $count=null 迭代有序集合中的元素(包括元素成員和元素分值)

在集群模式中,zInTerStore,zUnionStore 等方法不能使用

基本使用

go(function (){
    $redis =  new \EasySwoole\Redis\Redis(new \EasySwoole\Redis\Config\RedisConfig([
        'host'      => '127.0.0.1',
        'port'      => '6379',
        'auth'      => 'easyswoole',
        'serialize' => \EasySwoole\Redis\Config\RedisConfig::SERIALIZE_NONE
    ]));
    $key = [
            'sortMuster1',
            'sortMuster2',
            'sortMuster3',
            'sortMuster4',
            'sortMuster5',
        ];
    $member = [
        'member1',
        'member2',
        'member3',
        'member4',
        'member5',
    ];
    $score = [
        1,
        2,
        3,
        4,
    ];
    $redis->del($key[0]);
    $data = $redis->zAdd($key[0], $score[0], $member[0], $score[1], $member[1]);
    var_dump($data);

    $data = $redis->zCard($key[0]);
    var_dump($data);

    $data = $redis->zCount($key[0], 0, 3);
    var_dump($data);

    $data = $redis->zInCrBy($key[0], 1, $member[1]);
    var_dump($data);

    $redis->del($key[0]);
    $redis->del($key[1]);
    $redis->zAdd($key[0], $score[0], $member[0], $score[1], $member[1]);
    $redis->zAdd($key[1], $score[0], $member[0], $score[3], $member[3]);
    $data = $redis->zInTerStore($key[2], [$key[0], $key[1]], [1, 2]);
    var_dump($data);

    $data = $redis->zLexCount($key[0], '-', '+');
    var_dump($data);

    $redis->del($key[0]);
    $redis->zAdd($key[0], $score[0], $member[0], $score[1], $member[1], $score[2], $member[2]);
    $data = $redis->zRange($key[0], 0, -1, true);
    var_dump($data);

    $data = $redis->zRangeByLex($key[0], '-', '+');
    var_dump($data);

    $data = $redis->zRangeByScore($key[0], 2, 3, ['withScores' => true, 'limit' => array(0, 2)]);
    var_dump($data);

    $data = $redis->zRank($key[0], $member[1]);
    var_dump($data);

    $data = $redis->zRem($key[0], $member[1], $member[2]);
    var_dump($data);

    $redis->del($key[0]);
    $redis->zAdd($key[0], $score[0], $member[0], $score[1], $member[1], $score[2], $member[2]);
    $data = $redis->zRemRangeByLex($key[0], '-', '+');
    var_dump($data);

    $redis->del($key[0]);
    $redis->zAdd($key[0], $score[0], $member[0], $score[1], $member[1], $score[2], $member[2]);
    $data = $redis->zRemRangeByRank($key[0], 0, 2);
    var_dump($data);

    $redis->del($key[0]);
    $redis->zAdd($key[0], $score[0], $member[0], $score[1], $member[1], $score[2], $member[2]);
    $data = $redis->zRemRangeByScore($key[0], 0, 3);
    var_dump($data);

    $redis->del($key[0]);
    $redis->zAdd($key[0], $score[0], $member[0], $score[1], $member[1], $score[2], $member[2]);
    $data = $redis->zRevRange($key[0], 0, 3, true);
    var_dump($data);

    $redis->del($key[0]);
    $redis->zAdd($key[0], $score[0], $member[0], $score[1], $member[1], $score[2], $member[2]);
    $data = $redis->zRevRangeByScore($key[0], 3, 0, ['withScores' => true, 'limit' => array(0, 3)]);
    var_dump($data);

    $data = $redis->zRevRank($key[0], $member[0]);
    var_dump($data);

    $data = $redis->zScore($key[0], $member[0]);
    var_dump($data);

    $redis->del($key[0]);
    $redis->del($key[1]);
    $redis->del($key[2]);
    $redis->zAdd($key[0], $score[0], $member[0], $score[1], $member[1]);
    $redis->zAdd($key[1], $score[0], $member[0], $score[3], $member[3]);
    $data = $redis->zUnionStore($key[2], [$key[1], $key[0]]);
    var_dump($data);

    $cursor = 0;
    $redis->del('a');
    $redis->zAdd('a',1,'a1',2,'a2',3,'a3',4,'a4',5,'a5');
    $data = [];
    do {
        $keys = $redis->zScan('a',$cursor,'*',1);
        $data = array_merge($data,$keys);
    } while ($cursor);
    var_dump($data);

})
主站蜘蛛池模板: 砂金设备-淘金机械-金矿选矿设备厂家-青州冠诚重工机械有限公司 砂浆生产线_干混砂浆设备_干混砂浆生产线-苏州一工机械有限公司 | 装盒机|全自动封盒机|纸盒子包装机|高速装盒机定制-温州胜泰机械有限公司 | 郑州离婚律师|婚姻律师在线咨询-河南锦盾律师事务所 | 油压缓冲器-缓冲器-重庆佑旺机械有限公司[官网]西捷克重庆办事处 | 长沙考研-长沙考研辅导学校-长沙领航教育科技有限公司 | 漫画大全免费看_漫画终身版_羞羞漫画网 | 检重秤,液化气充装秤,滚筒电子秤,汽车衡厂家|上海越衡实业 | 卧式镗铣床,道斯镗铣机床加工中心-江苏道斯数控科技有限公司 | 种植槽系统,移动苗床,多层种植货架,潮汐苗床,物流苗床,潮汐面板,立体旋转育秧床,河北博超温室设备有限公司 | 激光焊接不锈钢翅片管,不锈钢翅片管,激光焊接复合翅片管,南通拓帆换热设备有限公司 | 星干线艺考_导演艺考培训班_播音主持艺考_表演艺考培训班-助你考上北京电影学院影视表演系 | 气胀轴丨安全夹头丨电磁制动器丨纠偏系统丨磁粉离合器丨张力控制器厂家- 东莞天机通信科技有限公司 | 有机肥设备|有机肥生产线|有机肥料生产设备|河南通达重工科技有限公司 | 制砂机-合金-耐磨锤头-耐磨衬板-铸造件厂家-巩义市豫园宏宇铸造有限公司 | 混凝土修补-清水混凝土保护剂-仿清水混凝土-混凝土装修-混凝土色差处理-混凝土色差修复剂-德州唐荣建筑装饰工程有限公司 | 深圳钢成培训专业从事,五轴培训,车铣复合培训,数控车床,CNC数控编程,模具编程 ,钣金机械与模具设计,powermill,mastercam,solidworks,ug,hypermill培训 | 绣花厂_电脑绣花厂_手工刺绣加工定制 - 北京丽绣坊工艺品有限公司 | 宣传片拍摄-宣传片制作-三维动画-企业视频广告报价-北京环宇影音 | 四川超声波清洗机厂家-旋转喷淋清洗机设备-成都鑫荣诚超声波科技有限公司 | 图表秀——免费在线图表制作工具,数据可视化工具 | 深圳心理咨询-专业心理咨询服务平台「专家免费在线」-深圳从心开始心理O2O | 蒸汽流量计_涡轮流量计_涡街流量计_雷达液位计_污水流量计_分体式_大口径工业流量计-江苏长顺仪表 | 声测管厂家_声测管现货_桥梁桩基声测管_注浆管_沉降板-沧州市福顺昌钢管有限公司 | 宁波雷豹机电科技有限公司|雷豹冷风机|雷豹工业大风扇|MFC18000|MFC16000|MFC6000|EF3622|EF4222|EF4822|移动工业蒸发式冷风机空气冷却器|大型工业空调扇|雷豹移动式工业大风扇|雷豹大风扇|生产厂家|公司官网 | 河北浩元保温材料有限公司 | 气相色谱仪生产厂家批发价格找上海惠分科学分析仪器有限公司 | 专业制造泥浆泵阀箱、锻造零件、曲轴、台阶轴等各种机械部件 - 四川中宇重工科技有限公司 | 健身器材_健身器材厂_健身器材厂家-徐州兰士健身器材有限公司 | 汽车轴承|圆锥滚子轴承|轴承生产厂家|赛襄轴承 | 声测管厂家_注浆管现货_桩基声测管_河北沧州新迈实业有限公司 | 上海离婚律师|上海婚姻律师|上海家畅家事律师-上海家畅离婚律师网 | 金属探测机_食品金属探测仪_食品金属探测器_广东善安金属检测机 金属剪切机,金属打包机,废钢剪切机,废铁压块机,金属压块机,废纸打包机,重废龙门剪,废钢龙门剪,箱式剪,液压剪切机-瑞顿机械装备制造江阴有限公司 | 上海瀚广科技(集团)有限公司,上海瀚广,瀚广 | 南京样本设计,彩页制作,宣传册设计,画册设计印刷,包装设计公司,南京台历制作 | 微型直流减速电机-直流永磁电机-直流永磁电机厂家-微型直流减速电机定制-东莞市鑫辉传动科技有限公司 - 鑫辉传动科技 | 腾云网-智慧网络营销服务提供商| 淘金车,移动式淘金车,大小型旱地采矿车-青州冠诚重工机械有限公司 | 专业生产安检门-X光机-防爆罐-金属探测门-中警思创军警装备厂家 专业色素炭黑生产厂家,提供各种用途色素炭黑价格-枣庄鑫源化工 专业护工_医院护工_护工陪护_住家护工- 心陪护 | 烟台蓝天投资开发有限公司| 重庆监控-监控系统-大型弱电工程-重庆万建电子工程有限责任公司是智能化一级工程公司 | 山东胜王水处理设备有限公司,反渗透设备,纯净水设备,污水处理设备,SWS系列全自动钠离子交换器,纯净水设备报价,活性碳过滤器,多介质过滤器 |