<?php
/**
* Created by PhpStorm.
* User: baidu
* Date: 18/3/13
* Time: 上午1:12
*/
$redisClient = new swoole_redis;// Swoole\Redis
$redisClient->connect('127.0.0.1', 6379, function(swoole_redis $redisClient, $result) {
echo "connect".PHP_EOL;
var_dump($result);
// 同步 redis (new Redis())->set('key',2);
$redisClient->set('singwa', time(), function(swoole_redis $redisClient, $result) {
var_dump($result);
});
/*$redisClient->get('singwa_1', function(swoole_redis $redisClient, $result) {
var_dump($result);
$redisClient->close();
});*/
$redisClient->keys('*gw*', function(swoole_redis $redisClient, $result) {
var_dump($result);
$redisClient->close();
});
});
echo "start".PHP_EOL;
封装优化后:
<?php
class AysRedis
{
const HOST = '127.0.0.1';
const PORT = 6379;
public $redis_client = null;
function __construct()
{
$this->redis_client = new swoole_redis;
}
/**
* 闭包里不好直接用变量,要用use
* @return bool
*/
public function execute($id, $username)
{
$this->redis_client->connect(self::HOST, self::PORT, function ($redis_client, $result) use ($id, $username) {
if ($result === false) {
var_dump($redis_client->connect_errno, $redis_client->connect_error);
die;
}
var_dump('wawa');
//设置值
$redis_client->set('wawa', time(), function (swoole_redis $redis_client, $result){
//设置是否成功的返回值
var_dump($result);
});
//取值
$redis_client->get('wawa', function (swoole_redis $redis_client, $result){
var_dump($result);
});
//取所有值
$redis_client->keys('*', function (swoole_redis $redis_client, $result){
var_dump($result);
});
//模糊匹配KEY
$redis_client->keys('*l*', function (swoole_redis $redis_client, $result){
var_dump($result);
});
$redis_client->close();
});
return true;
}
}
$ws = new AysRedis();
$result = $ws->execute(1, 'test');
print_r($result.PHP_EOL);
echo 'start:'.PHP_EOL;
本文介绍使用Swoole框架进行Redis异步连接、设置键值、获取值及模糊匹配键的操作方法。通过实例代码,展示了如何利用闭包和use关键字优化异步Redis操作流程。
314

被折叠的 条评论
为什么被折叠?



