swoole学习之协程 Redis 客户端
协程 Redis 客户端
使用示例
Co\run(function () {
$redis = new Swoole\Coroutine\Redis();
$redis->connect('127.0.0.1', 6379);
$val = $redis->get('key');
});
封装redisServer类
<?php
class RedisService
{
//定义一个变量
public $redis = '';
//定义构造函数
public function __construct()
{
Co\run(function () {
//实例化redis服务
$this->redis = new Swoole\Coroutine\Redis();
//配置redis参数
$this->redis->connect('127.0.0.1', 6379);
});
}
//get获取指定key的值
public function get($key)
{
// 连接
go(function () use ($key) {
$result = $this->redis->get($key);
echo "<pre>";
print_r($result);
});
}
}
//实例化类
$redis = new RedisService();
$key = 'name';
$redis->get($key);
?>
set 存数据
语法
Swoole\Coroutine\Redis->set(string $key, mixed $value, array|int $option): bool
参数
string $key
功能:数据的 key
默认值:无
其它值:无
string $value
功能:数据内容【非字符串类型会自动序列化】
默认值:无
其它值:无
string $options
功能:选项
默认值:无
其它值:无
$option 说明:
整型:设置过期时间,如 3600
数组:高级过期设置,如 [‘nx’, ‘ex’ => 10] 、[‘xx’, ‘px’ => 1000]
px: 表示毫秒级过期时间
ex: 表示秒级过期时间
nx: 表示不存在时设置超时
xx: 表示存在时设置超时
实例代码
无有效期
新增存储set方法
//set存数据
public function set($qipa_key, $qipa_data)
{
// 连接
go(function () use ($qipa_key, $qipa_data) {
$result = $this->redis->set($qipa_key, json_encode($qipa_data));
echo "<pre>";
print_r($result);
});
}
调用set方法
$qipa_key = 'qipa250';
$qipa_data = array(
'id' => 1,
'name' => '奇葩天地网',
'url' => 'www.qipa250.com'
);
$redis->set($qipa_key, $qipa_data);
如下图所示:
可以在终端看到 为qipa250 的key值
设置有效期
//setex存数据 有效期
public function setex($qipa_key, $qipa_data)
{
// 连接
go(function () use ($qipa_key, $qipa_data) {
/*
px: 表示毫秒级过期时间
ex: 表示秒级过期时间
nx: 表示不存在时设置超时
xx: 表示存在时设置超时
*/
$exipre_ay = ['xx', 'ex' => 100];
//100秒有效期
//$result = $this->redis->set($qipa_key, json_encode($qipa_data), 100);
$result = $this->redis->set($qipa_key, json_encode($qipa_data), 100);
echo "<pre>";
print_r($result);
});
}
调用执行setex方法
$qipa_key = 'aiqipa';
$qipa_data = array(
'id' => 1,
'name' => '奇葩天地网',
'url' => 'www.qipa250.com'
);
$redis->setex($qipa_key, $qipa_data);
使用ttl命令 查看key的有效期