您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman-redis-sRandMember
发布时间:2021-12-29 21:42:58编辑:雪饮阅读()
sRandMember
Redis Srandmember 命令用于返回集合中的一个随机元素。
Srandmember 命令接受可选的 count 参数:
如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。
如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。
该操作和 SPOP 相似,但 SPOP 将随机元素从集合中移除并返回,而 Srandmember 则仅仅返回随机元素,而不对集合进行任何改动。
实例:
<?php
use Workerman\Worker;
use Workerman\Redis\Client;
use Workerman\Connection\TcpConnection;
use Workerman\Timer;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('http://0.0.0.0:6161');
global $offset;
$worker->onWorkerStart = function() {
global $offset;
$offset=0;
};
$worker->onMessage = function(TcpConnection $connection, $data) {
$redis = new Client('redis://127.0.0.1:6379');
$redis->del('key1',function($res) use($redis){
var_dump("del:");
var_dump($res);
$redis->sAdd('key1' , ['member1','member2','member3'],function($res) use($redis){
var_dump("sAdd:");
var_dump($res);
$redis->sRandMember('key1', function ($r) {
var_dump("sRandMember 1:");
var_dump($r);
});
$redis->sRandMember('key1', 2, function ($r) {
var_dump("sRandMember 2:");
var_dump($r);
});
$redis->sRandMember('key1', -5, function ($r) {
var_dump("sRandMember -5:");
var_dump($r);
});
$redis->sRandMember('empty-set', 5, function ($r) {
var_dump("sRandMember empty-set:");
var_dump($r);
});
$redis->sRandMember('not-a-set', 5, function ($r) {
var_dump("sRandMember not-a-set:");
var_dump($r);
});
});
});
};
Worker::runAll();
实例某次运行并有某次http请求时:
[root@localhost workerman]# php index.php start
Workerman[index.php] start in DEBUG mode
----------------------------------------- WORKERMAN -----------------------------------------
Workerman version:4.0.26 PHP version:7.3.31
------------------------------------------ WORKERS ------------------------------------------
proto user worker listen processes status
tcp root none http://0.0.0.0:6161 1 [OK]
---------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
string(4) "del:"
int(1)
string(5) "sAdd:"
int(3)
string(14) "sRandMember 1:"
string(7) "member1"
string(14) "sRandMember 2:"
array(2) {
[0]=>
string(7) "member3"
[1]=>
string(7) "member1"
}
string(15) "sRandMember -5:"
array(5) {
[0]=>
string(7) "member1"
[1]=>
string(7) "member3"
[2]=>
string(7) "member3"
[3]=>
string(7) "member1"
[4]=>
string(7) "member2"
}
string(22) "sRandMember empty-set:"
array(0) {
}
string(22) "sRandMember not-a-set:"
array(0) {
}
关键字词:workerman,redis,sRandMember