ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Zset ``` <pre class="calibre18">``` <span class="token">/*Zset,没有重复的member,有排序顺序,创建更新同操作*/</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span>$score1<span class="token3">,</span>$member1<span class="token3">,</span>$scoreN<span class="token3">,</span>$memberN<span class="token3">)</span><span class="token3">;</span><span class="token">//增,改,将一个或多个member元素及其score值加入到有序集key当中。[num | 0]注意存其他类型的key与key同名时会放弃添加</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRem</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span><span class="token2">'member1'</span><span class="token3">,</span><span class="token2">'membern'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//删,移除有序集key中的一个或多个成员,不存在的成员将被忽略。[del_num | 0]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zScore</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span><span class="token2">'member'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//查,通过值反拿权 [num | null]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRange</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span>$start<span class="token3">,</span>$stop<span class="token3">)</span><span class="token3">;</span><span class="token">//查,通过位偏移范围(索引)拿member值,返回有序集key中指定偏移量分为的的成员,score从低到高排列 [array | null]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRevRange</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span>$start<span class="token3">,</span>$stop<span class="token3">)</span><span class="token3">;</span><span class="token">//查,通过位偏移范围(索引)拿member值,返回有序集key中指定偏移量分为的的成员,score从高到底排列 [array | null]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRangeByScore</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span>$min<span class="token3">,</span>$max<span class="token3">[</span><span class="token3">,</span>$config<span class="token3">]</span><span class="token3">)</span><span class="token3">;</span><span class="token">//查,通过scroe权范围拿member值,返回有序集key中,指定区间内的(从小到大排)成员[array | null]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRevRangeByScore</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span>$max<span class="token3">,</span>$min<span class="token3">[</span><span class="token3">,</span>$config<span class="token3">]</span><span class="token3">)</span><span class="token3">;</span><span class="token">//查,通过scroe权范围拿member值,返回有序集key中,指定区间内的(从大到小排)成员[array | null]</span> ``` ``` ``` <pre class="calibre10">``` $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">100</span><span class="token3">,</span> <span class="token2">'val0'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">101</span><span class="token3">,</span> <span class="token2">'val1'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">102</span><span class="token3">,</span> <span class="token2">'val2'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">103</span><span class="token3">,</span> <span class="token2">'val3'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">104</span><span class="token3">,</span> <span class="token2">'val4'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">105</span><span class="token3">,</span> <span class="token2">'val5'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">106</span><span class="token3">,</span> <span class="token2">'val6'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">107</span><span class="token3">,</span> <span class="token2">'val7'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">108</span><span class="token3">,</span> <span class="token2">'val8'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">109</span><span class="token3">,</span> <span class="token2">'val9'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">110</span><span class="token3">,</span> <span class="token2">'val10'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">111</span><span class="token3">,</span> <span class="token2">'val11'</span><span class="token3">)</span><span class="token3">;</span> $res1<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRange</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">0</span><span class="token3">,</span> <span class="token1">-</span><span class="token6">1</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//['val0','val1',...,'val11']</span> $res3<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRange</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">0</span><span class="token3">,</span> <span class="token1">-</span><span class="token6">1</span><span class="token3">,</span> <span class="token6">false</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//['val0','val1',...,'val11']</span> $res2<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRange</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">0</span><span class="token3">,</span> <span class="token1">-</span><span class="token6">1</span><span class="token3">,</span> <span class="token6">true</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//['val0'=>100,'val1'=>101,...,'val11'=>111]</span> $res4<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRevRange</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">0</span><span class="token3">,</span> <span class="token1">-</span><span class="token6">1</span><span class="token3">,</span> <span class="token6">true</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//['val11'=>111,'val10'=>110,...,'val0'=>100]</span> $res<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRevRange</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">0</span><span class="token3">,</span> <span class="token1">-</span><span class="token6">1</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//['val11','val10',...,'val0']</span> $index<span class="token1">=</span><span class="token6">2</span><span class="token3">;</span> $count<span class="token1">=</span><span class="token6">5</span><span class="token3">;</span> $res5<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRangeByScore</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">0</span><span class="token3">,</span> <span class="token6">111</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//['val0','val1',...,'val11']</span> $res6<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRangeByScore</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">100</span><span class="token3">,</span> <span class="token6">111</span><span class="token3">,</span> <span class="token3">[</span><span class="token2">'withscores'</span> <span class="token1">=</span><span class="token1">></span> TRUE<span class="token3">,</span><span class="token2">'limit'</span> <span class="token1">=</span><span class="token1">></span> <span class="token3">[</span>$index<span class="token3">,</span> $count<span class="token3">]</span><span class="token3">]</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//['val2','val1',...,'val6']</span> $res7<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRevRangeByScore</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">0</span><span class="token3">,</span> <span class="token6">111</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//为什么返回的是空数组?</span> $res8<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRevRangeByScore</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token6">100</span><span class="token3">,</span> <span class="token6">111</span><span class="token3">,</span> <span class="token3">[</span><span class="token2">'withscores'</span> <span class="token1">=</span><span class="token1">></span> TRUE<span class="token3">,</span><span class="token2">'limit'</span> <span class="token1">=</span><span class="token1">></span> <span class="token3">[</span>$index<span class="token3">,</span> $count<span class="token3">]</span><span class="token3">]</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//为什么返回的是空数组?</span> ``` ``` ``` <pre class="calibre17">``` $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRank</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span><span class="token2">'member'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//查,返回有序集中指定成员的排名(索引)。其中有序集成员按分数值递增(从小到大)顺序排列[order | null]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zrevrank</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span><span class="token2">'member'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//查,返回有序集合中指定成员的排名(索引),有序集成员按分数值递减(从大到小)排序[order | null]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zCard</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//返回集合key的基数(集合中元素的数量)。[num | 0]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zCount</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span><span class="token6">0</span><span class="token3">,</span><span class="token1">-</span><span class="token6">1</span><span class="token3">)</span><span class="token3">;</span><span class="token">//返回有序集key中,score值在min和max之间(默认包括score值等于min或max)的成员数量。[num | 0]</span> <span class="token">//zIncrBy(key,score,value) - 按给定的值自增score分 返回double类型的score总值</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zIncrBy</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span> <span class="token6">1</span><span class="token3">,</span> <span class="token2">'member1'</span><span class="token3">)</span><span class="token3">;</span> <span class="token">// 1 </span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zIncrBy</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span> <span class="token6">2.5</span><span class="token3">,</span> <span class="token2">'member1'</span><span class="token3">)</span><span class="token3">;</span> <span class="token">// 3.5</span> <span class="token4">zInter</span><span class="token3">(</span>newkey<span class="token3">,</span>arrayZSetKeys<span class="token1">=</span><span class="token3">[</span>k1<span class="token3">,</span>k2<span class="token3">,</span>kn<span class="token3">]</span><span class="token3">,</span> arrayWeights<span class="token1">=</span><span class="token3">[</span>score1<span class="token3">,</span>score2<span class="token3">,</span>scoren<span class="token3">]</span><span class="token3">,</span>aggregateFunction <span class="token1">=</span><span class="token2">'SUM|MAX|MIN'</span><span class="token3">)</span> <span class="token">//保存 k1~kn有序集合的交集 到newkey中,并返回并集新集合成员的个数</span> <span class="token">//zInter('newkey', ['k1', 'k2'], [1, 1],'SUM');//第三个参数arrayWeights的默认值每个都为1,第四个参数aggregateFunction默认为SUM</span> <span class="token">//newkey元素的score计算规则</span> <span class="token">//当第四个参数为sum时:(arrayZSetKeys[0]_score*arrayWeights[0])+(arrayZSetKeys[1]_score*arrayWeights[1])+(arrayZSetKeys[n]_score*arrayWeights[n])</span> <span class="token">//当第四个参数为max时: max(arrayZSetKeys[0]_score,arrayZSetKeys[1]_score,arrayZSetKeys[n]_score)*max(arrayWeights[0],arrayWeights[1],arrayWeights[n])</span> <span class="token">//当第四个参数为min时: min(arrayZSetKeys[0]_score,arrayZSetKeys[1]_score,arrayZSetKeys[n]_score)*min(arrayWeights[0],arrayWeights[1],arrayWeights[n])</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">delete</span><span class="token3">(</span><span class="token2">'k1'</span><span class="token3">)</span><span class="token3">;</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">delete</span><span class="token3">(</span><span class="token2">'k2'</span><span class="token3">)</span><span class="token3">;</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">delete</span><span class="token3">(</span><span class="token2">'k3'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">delete</span><span class="token3">(</span><span class="token2">'ko1'</span><span class="token3">)</span><span class="token3">;</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">delete</span><span class="token3">(</span><span class="token2">'ko2'</span><span class="token3">)</span><span class="token3">;</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">delete</span><span class="token3">(</span><span class="token2">'ko3'</span><span class="token3">)</span><span class="token3">;</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">delete</span><span class="token3">(</span><span class="token2">'ko4'</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//k1=>[[0.0,val0],[1.0,val1],[3.0,val3]] </span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'k1'</span><span class="token3">,</span> <span class="token6">0</span><span class="token3">,</span> <span class="token2">'val0'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'k1'</span><span class="token3">,</span> <span class="token6">1</span><span class="token3">,</span> <span class="token2">'val1'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'k1'</span><span class="token3">,</span> <span class="token6">3</span><span class="token3">,</span> <span class="token2">'val3'</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//k2=>[[2.0,val1],[3.0,val3]]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'k2'</span><span class="token3">,</span> <span class="token6">2</span><span class="token3">,</span> <span class="token2">'val1'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'k2'</span><span class="token3">,</span> <span class="token6">3</span><span class="token3">,</span> <span class="token2">'val3'</span><span class="token3">)</span><span class="token3">;</span> $a<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zInter</span><span class="token3">(</span><span class="token2">'ko1'</span><span class="token3">,</span> <span class="token3">[</span><span class="token2">'k1'</span><span class="token3">,</span> <span class="token2">'k2'</span><span class="token3">]</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//返回 2 此时:'ko1' => [[3.0,val1],[6.0,val3]] 1*1+2*1 3*1+3*1</span> $b<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zInter</span><span class="token3">(</span><span class="token2">'ko2'</span><span class="token3">,</span> <span class="token3">[</span><span class="token2">'k1'</span><span class="token3">,</span> <span class="token2">'k2'</span><span class="token3">]</span><span class="token3">,</span> <span class="token3">[</span><span class="token6">1</span><span class="token3">,</span> <span class="token6">1</span><span class="token3">]</span><span class="token3">)</span><span class="token3">;</span> <span class="token">// 2, 'ko2' => [[3.0,val1],[6.0,val3]] 1*1+2*1 3*1+3*1</span> $b<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zInter</span><span class="token3">(</span><span class="token2">'ko5'</span><span class="token3">,</span> <span class="token3">[</span><span class="token2">'k1'</span><span class="token3">,</span> <span class="token2">'k2'</span><span class="token3">]</span><span class="token3">,</span> <span class="token3">[</span><span class="token6">1</span><span class="token3">,</span> <span class="token6">10</span><span class="token3">]</span><span class="token3">)</span><span class="token3">;</span> <span class="token">// 2, 'ko5' => [[21.0,val1],[33.0,val3]] (1*1)+(2*10) (3*1)+(3*10)</span> $b<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zInter</span><span class="token3">(</span><span class="token2">'ko6'</span><span class="token3">,</span> <span class="token3">[</span><span class="token2">'k1'</span><span class="token3">,</span> <span class="token2">'k2'</span><span class="token3">]</span><span class="token3">,</span> <span class="token3">[</span><span class="token6">1</span><span class="token3">,</span> <span class="token6">10</span><span class="token3">]</span><span class="token3">,</span><span class="token2">'SUM'</span><span class="token3">)</span><span class="token3">;</span> <span class="token">// 2, 'ko6' => [[21.0,val1],[33.0,val3]] (1*1)+(2*10) (3*1)+(3*10)</span> $b<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zInter</span><span class="token3">(</span><span class="token2">'ko7'</span><span class="token3">,</span> <span class="token3">[</span><span class="token2">'k1'</span><span class="token3">,</span> <span class="token2">'k2'</span><span class="token3">]</span><span class="token3">,</span> <span class="token3">[</span><span class="token6">5</span><span class="token3">,</span> <span class="token6">10</span><span class="token3">]</span><span class="token3">,</span><span class="token2">'MIN'</span><span class="token3">)</span><span class="token3">;</span> <span class="token">// 2, 'ko7' => [[5.0,val1],[15.0,val3]] mim(1,2)*5 min(3,3)*5</span> $c<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zInter</span><span class="token3">(</span><span class="token2">'ko3'</span><span class="token3">,</span> <span class="token3">[</span><span class="token2">'k1'</span><span class="token3">,</span> <span class="token2">'k2'</span><span class="token3">]</span><span class="token3">,</span> <span class="token3">[</span><span class="token6">1</span><span class="token3">,</span> <span class="token6">5</span><span class="token3">]</span><span class="token3">,</span> <span class="token2">'min'</span><span class="token3">)</span><span class="token3">;</span> <span class="token">// 2, 'ko3' => [[1.0,val1],[3.0,val3]] min(1,2)*1 min(3,3)*1</span> $d<span class="token1">=</span>$redis<span class="token1">-</span><span class="token1">></span><span class="token4">zInter</span><span class="token3">(</span><span class="token2">'ko4'</span><span class="token3">,</span> <span class="token3">[</span><span class="token2">'k1'</span><span class="token3">,</span> <span class="token2">'k2'</span><span class="token3">]</span><span class="token3">,</span> <span class="token3">[</span><span class="token6">1</span><span class="token3">,</span> <span class="token6">5</span><span class="token3">]</span><span class="token3">,</span> <span class="token2">'max'</span><span class="token3">)</span><span class="token3">;</span> <span class="token">// 2, 'ko4' => [[10.0,val1],[15.0,val3]] max(1,2)*5 max(3,3)*5</span> <span class="token4">zRangeByLex</span><span class="token3">(</span>key<span class="token3">,</span>min<span class="token1">=</span><span class="token2">"-"</span><span class="token3">,</span>max<span class="token1">=</span><span class="token2">"+"</span> <span class="token3">[</span><span class="token3">,</span>index<span class="token3">,</span>count<span class="token3">]</span><span class="token3">)</span> <span class="token">//返回相同score情况下指定有序集合键key的(介于min和max之间的)成员,按成员字典正序排序, 注意:分数必须相同</span> <span class="token">//min和max必须以[或者(开头[:包含(:不包含 或者min可以有-表示最小 max有+表示最大 注意 排序的是ASCII编码字符,utf8等其他字符排序不准确 </span> <span class="token">//k1=>[a,b,...,g];</span> <span class="token">//zRangeByLex('key1','-','+');获取所有zset集合</span> <span class="token">//zRangeByLex('key1','[a or(a','(c');获取key1所有a-c之间的所有值包含a不包含c </span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRangeByLex</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span><span class="token2">'-'</span><span class="token3">,</span><span class="token2">'[c'</span><span class="token3">)</span> <span class="token">// ['a','b','c']; </span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRangeByLex</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span><span class="token2">'-'</span><span class="token3">,</span><span class="token2">'(c'</span><span class="token3">)</span> <span class="token">// ['a','b'] </span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRangeByLex</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span><span class="token2">'-'</span><span class="token3">,</span><span class="token2">'[c'</span><span class="token3">,</span><span class="token6">1</span><span class="token3">,</span><span class="token6">2</span><span class="token3">)</span> <span class="token">// ['b','c'] 偏移从1开始且只返回两个</span> <span class="token">//zRemRangeByRank(key,start,end), zDeleteRangeByRank(key,start,end) - 删除所有有在索引(下标)start~end之间的有序集合返回删除的个数</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span> <span class="token6">1</span><span class="token3">,</span> <span class="token2">'one'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span> <span class="token6">2</span><span class="token3">,</span> <span class="token2">'two'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span> <span class="token6">3</span><span class="token3">,</span> <span class="token2">'three'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRemRangeByRank</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span> <span class="token6">0</span><span class="token3">,</span> <span class="token6">1</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//2 </span> <span class="token">//zRemRangeByScore(key,score1,score2), zDeleteRangeByScore(key,score1,score2) - 删除所有有在score权重排序分score1,score2之间的有序集合返回删除的个数</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span> <span class="token6">0</span><span class="token3">,</span> <span class="token2">'val0'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span> <span class="token6">2</span><span class="token3">,</span> <span class="token2">'val2'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zAdd</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span> <span class="token6">10</span><span class="token3">,</span> <span class="token2">'val10'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zRemRangeByScore</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span> <span class="token6">0</span><span class="token3">,</span> <span class="token6">3</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//2</span> <span class="token4">zUnion</span><span class="token3">(</span>newkey<span class="token3">,</span>arrayZSetKeys<span class="token1">=</span><span class="token3">[</span>k1<span class="token3">,</span>k2<span class="token3">,</span>kn<span class="token3">]</span><span class="token3">,</span> arrayWeights<span class="token1">=</span><span class="token3">[</span>score1<span class="token3">,</span>score2<span class="token3">,</span>scoren<span class="token3">]</span><span class="token3">,</span>aggregateFunction <span class="token1">=</span><span class="token2">'SUM|MAX|MIN'</span><span class="token3">)</span> <span class="token">// 返回并集;用法同zInter</span> <span class="token">//zScan(key,iterator,key_pattern,count) - 迭代有序集合</span> $it <span class="token1">=</span> NULL<span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">setOption</span><span class="token3">(</span>Redis<span class="token3">:</span><span class="token3">:</span>OPT_SCAN<span class="token3">,</span> Redis<span class="token3">:</span><span class="token3">:</span>SCAN_RETRY<span class="token3">)</span><span class="token3">;</span> <span class="token5">while</span><span class="token3">(</span>$arr_matches <span class="token1">=</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">zScan</span><span class="token3">(</span><span class="token2">'zset'</span><span class="token3">,</span> $it<span class="token3">,</span> <span class="token2">'*pattern*'</span><span class="token3">)</span><span class="token3">)</span> <span class="token3">{</span> <span class="token4">foreach</span><span class="token3">(</span>$arr_matches as $str_mem <span class="token1">=</span><span class="token1">></span> $f_score<span class="token3">)</span> <span class="token3">{</span> echo <span class="token2">"Key: $str_mem, Score: $f_score\n"</span><span class="token3">;</span> <span class="token3">}</span> <span class="token3">}</span> ``` ```