您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman-redis-sInterStore
发布时间:2021-12-29 21:39:46编辑:雪饮阅读()
sInterStore
将给定集合之间的交集存储在指定的集合中并返回存储交集的集合的元素数量。如果指定的集合已经存在,则将其覆盖。
实例:
<?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->sAdd('key1', 'val1');
$redis->sAdd('key1', 'val2');
$redis->sAdd('key1', 'val3');
$redis->sAdd('key1', 'val4');
$redis->sAdd('key1', 'val5');
$redis->sAdd('key2', 'val3');
$redis->sAdd('key2', 'val4');
$redis->sAdd('key2', 'val5');
$redis->sAdd('key3', 'val3');
$redis->sAdd('key3', 'val4');
$redis->sAdd('key3', 'val5');
$redis->sInterStore('output', 'key1', 'key2', 'key3', function ($r) {
//有多少个元素产生交集
var_dump($r); // 3
});
//已产生的交集元素列表
$redis->sMembers('output', function ($r) {
var_dump($r); // ['val5', 'val4','val3']
});
};
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.
int(3)
array(3) {
[0]=>
string(4) "val5"
[1]=>
string(4) "val4"
[2]=>
string(4) "val3"
}
关键字词:workerman,redis,sInterStore