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


本篇主要分享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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM