💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
# Set ``` <pre class="calibre29">``` <span class="token">/*Set,没有重复的member,创建更新同操作*/</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sAdd</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span><span class="token2">'value1'</span><span class="token3">,</span><span class="token2">'value2'</span><span class="token3">,</span><span class="token2">'valuen'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//增,改,将一个或多个member元素加入到无序集合key当中,已经存在于集合的member元素将被忽略。[insert_num]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sRem</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">,</span><span class="token2">'value1'</span><span class="token3">,</span><span class="token2">'value2'</span><span class="token3">,</span><span class="token2">'valuen'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//删,移除无序集合key中的一个或多个member元素,不存在的member元素会被忽略 [del_num | false]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sMembers</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//查,返回无序集合key中的所有成员 [array | '']</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sGetMembers</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//查 返回无序集合中的所有成员</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sIsMember</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">//判断member元素是否是集合key的成员 [1 | 0]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sPop</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//删,移除并返回集合中的一个随机元素 [member | false]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sRandMember</span><span class="token3">(</span><span class="token2">'key'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//查,返回集合中的一个随机元素 [member | false]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sInter</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span><span class="token2">'key2'</span><span class="token3">,</span><span class="token2">'keyn'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//查,返回所有给定集合的交集 [array | false]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sUnion</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span><span class="token2">'key2'</span><span class="token3">,</span><span class="token2">'keyn'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//查,返回所有给定集合的并集 [array | false]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sDiff</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span><span class="token2">'key2'</span><span class="token3">,</span><span class="token2">'keyn'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//查,返回所有给定集合的差集 [array | false]</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sCard</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">sMove</span><span class="token3">(</span><span class="token2">'key1'</span><span class="token3">,</span> <span class="token2">'key2'</span><span class="token3">,</span> <span class="token2">'member'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//移动,将member元素从key1集合移动到key2集合。[1 | 0]</span> <span class="token4">sDiffStore</span><span class="token3">(</span>destination<span class="token3">,</span>key1<span class="token3">,</span>key2<span class="token3">,</span>keyn<span class="token3">)</span> <span class="token1">-</span> 保存指定key的差集到destination集合并返回<span class="token3">,</span>destination存在则覆盖 destination 可以是 key 本身 $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sAdd</span><span class="token3">(</span><span class="token2">'s0'</span><span class="token3">,</span> <span class="token2">'1'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sAdd</span><span class="token3">(</span><span class="token2">'s0'</span><span class="token3">,</span> <span class="token2">'2'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sAdd</span><span class="token3">(</span><span class="token2">'s0'</span><span class="token3">,</span> <span class="token2">'3'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sAdd</span><span class="token3">(</span><span class="token2">'s0'</span><span class="token3">,</span> <span class="token2">'4'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sAdd</span><span class="token3">(</span><span class="token2">'s1'</span><span class="token3">,</span> <span class="token2">'1'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sAdd</span><span class="token3">(</span><span class="token2">'s2'</span><span class="token3">,</span> <span class="token2">'3'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sDiffStore</span><span class="token3">(</span><span class="token2">'dst'</span><span class="token3">,</span> <span class="token2">'s0'</span><span class="token3">,</span> <span class="token2">'s1'</span><span class="token3">,</span> <span class="token2">'s2'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sMembers</span><span class="token3">(</span><span class="token2">'dst'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//[4,2]</span> <span class="token">//sInterStore(newkey,key1,key2,keyn) - 执行sInter命令(交集)并将结果存储在新集合newkey中</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sAdd</span><span class="token3">(</span><span class="token2">'key1'</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">sAdd</span><span class="token3">(</span><span class="token2">'key1'</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">sAdd</span><span class="token3">(</span><span class="token2">'key1'</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">sAdd</span><span class="token3">(</span><span class="token2">'key1'</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">sAdd</span><span class="token3">(</span><span class="token2">'key2'</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">sAdd</span><span class="token3">(</span><span class="token2">'key2'</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">sAdd</span><span class="token3">(</span><span class="token2">'key3'</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">sAdd</span><span class="token3">(</span><span class="token2">'key3'</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">sInterStore</span><span class="token3">(</span><span class="token2">'output'</span><span class="token3">,</span> <span class="token2">'key1'</span><span class="token3">,</span> <span class="token2">'key2'</span><span class="token3">,</span> <span class="token2">'key3'</span><span class="token3">)</span><span class="token3">;</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sMembers</span><span class="token3">(</span><span class="token2">'output'</span><span class="token3">)</span><span class="token3">;</span><span class="token">//['val3','val4']</span> <span class="token4">sUnionStore</span><span class="token3">(</span>newkey<span class="token3">,</span>key1<span class="token3">,</span>key2<span class="token3">,</span>keyn<span class="token3">)</span> <span class="token">//执行sUnion命令(并集)并将结果存储在新集合newkey中</span> <span class="token">//sScan(key,iterator,key's_pattern,count) - 迭代无需集合的key(替代阻塞的keys*)</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="token">// don't return empty results until we're done </span> <span class="token5">while</span><span class="token3">(</span>$arr_mems <span class="token1">=</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sScan</span><span class="token3">(</span><span class="token2">'set'</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_mems as $str_mem<span class="token3">)</span> <span class="token3">{</span> echo <span class="token2">"Member: $str_mem\n"</span><span class="token3">;</span> <span class="token3">}</span> <span class="token3">}</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_NORETRY<span class="token3">)</span><span class="token3">;</span> <span class="token">// return after each iteration, even if empty</span> <span class="token5">while</span><span class="token3">(</span><span class="token3">(</span>$arr_mems <span class="token1">=</span> $redis<span class="token1">-</span><span class="token1">></span><span class="token4">sScan</span><span class="token3">(</span><span class="token2">'set'</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="token1">!==</span>FALSE<span class="token3">)</span> <span class="token3">{</span> <span class="token5">if</span><span class="token3">(</span><span class="token4">count</span><span class="token3">(</span>$arr_mems<span class="token3">)</span> <span class="token1">></span> <span class="token6">0</span><span class="token3">)</span> <span class="token3">{</span> <span class="token4">foreach</span><span class="token3">(</span>$arr_mems as $str_mem<span class="token3">)</span> <span class="token3">{</span> echo <span class="token2">"Member found: $str_mem\n"</span><span class="token3">;</span> <span class="token3">}</span> <span class="token3">}</span> <span class="token5">else</span> <span class="token3">{</span> echo <span class="token2">"No members in this iteration, iterator value: $it\n"</span><span class="token3">;</span> <span class="token3">}</span> <span class="token3">}</span> ``` ```