redis中有序集合zset的相关操作

PHP Redis ZSet 操作详解
本文详细介绍了PHP中Redis的ZSet(有序集合)的各种操作,包括zAdd(), zRange(), zDelete(), zCount(), zRemRangeByScore(), zSize(), zScore(), zRank(), zIncrBy()等函数的使用方法及示例。

本篇主要分享PHP中Redis的zset(有序集合)相关操作。

1、zAdd()

zAdd()的语法格式是:$redis->zAdd(key, score, value),作用是向有序集合key中添加元素value,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。例如:

//添加元素到有序集合set
$redis->zAdd('set', 1, 'b');
$redis->zAdd('set', 0, 'a');
//输出所有元素
print_r($redis->zRange('set', 0, -1));

程序运行输出:Array ( [0] => a [1] => b )


2、zRange()/zRevRange()

zRange()的语法格式是:$redis->zRange(key, start, end),作用是返回有序集合key中的index从start到end的所有元素【升序】。end为-1时,返回所有元素。zRevRange()的语法相同,但是输出是降序输出。


3、zDelete()/zRem()

zDelete()的语法格式是:$redis->zDelete(key, value),作用是删除有序集合key中的元素value。


4、zCount()

zCount()的语法格式是:$redis->zCount(key, star, end),作用是返回有序集合key中,index从start到end间的【包括start和end】所有元素的个数。


5、zRemRangeByScore()/zDeleteRangeByScore()

zRemRangeByScore()的语法格式是:$redis->zRemRangeByScore(key, start, end),作用是删除有序集合key中,index从start到end间的【包括start和end】所有元素,返回删除元素的个数。


6、zSize()/zCard()

zSize()的语法格式是:$redis->zSize(key),作用是返回有序集合key中的元素个数。


7、zScore()

zScore()的语法格式是:$redis->zScore(key, value),作用是返回有序集合key中元素value的score。例如:

//添加元素到有序集合set
$redis->zAdd('set', 1, 'b');
print_r($redis->zScore('set', 'b'));

程序运行输出:1


8、zRank()/zRevRank()

zRank()的语法格式是:$redis->zRand(key, value),作用是返回有序集合key【元素已按score从小到大排序】中元素value的rank。若没有val元素,返回“null”。zRevRank()是大到小排序。例如:

//添加元素到有序集合set
$redis->zAdd('set', 1, 'b');
$redis->zAdd('set', 0, 'a');
$redis->zAdd('set', 4, 'c');
$redis->zAdd('set', 5, 'd');
print_r($redis->zRank('set', 'd'));

程序运行输出:3


9、zIncrBy()

zIncrBy()的语法格式是:$redis->zIncrBy(key, increment, value),作用是将有序集合key中的元素value的score增加increment,若元素value不存在,否则向集合中添加该元素,其score的值为increment。例如:

//添加元素到有序集合set
$redis->zAdd('set', 1, 'b');
$redis->zAdd('set', 0, 'a');
$redis->zAdd('set', 4, 'c');
$redis->zAdd('set', 5, 'd');
//输出元素c目前的score
echo $redis->zScore('set', 'c') . " ";
$redis->zIncrBy('set', 2, 'c');
//输出元素c目前的score
echo $redis->zScore('set', 'c');

程序运行输出:4 6

转载于:https://www.cnblogs.com/ssfs/p/6667375.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值