php之redis队列

2020/07/02 posted in  客户端
Tags:  #php #db

php redis队列的使用,记录一下常用代码。

redis常用方法

通常使用redis作为缓存使用
例如:

字符串缓存

// 设置缓存数据
redis::set(Report::$cache_key."init_".$initkey,$dataJson);
// 设置过期时间 
redis::expire(Report::$cache_key."init_".$initkey,3600);
// 获取缓存数据
redis::get(Report::$cache_key."init_".$initkey);

hash字典缓存

$setArr = [
    'putType' => $result['putType'],
    'timestamp' => $time,
    'date' => date('Ymd',$time),
    'clickid' => $result['click_id'],
    'putType' => $result['putType'],
    'reg' => 1
];
// 设置字典
redis::hmset($userkey,$setArr);
// 设置字典指定字段
redis::hset($userkey,'pay',1);
// 获取字典所有字段
$put = redis::hgetall($userkey);

列表队列

简单的队列操作,先进先出,出可以先进后出

// 放入列表
$status = redis::lpush("webSend",$dataJson);
// 获取队列列表
while($result = redis::rpop("webSend"))
{
    // 获取数据之后的处理
}

延迟队列

使用集合来作为延迟队列

// 添加数据
$second = 15; //延迟15秒之后执行
redis::zadd('test',time()+$second,json_encode(['1','3','2']));
// 获取1个数据 limit即限制的条数
$tmp = redis::zRangeByScore('test', 0, time(), ['limit' => [0, 1]]);
var_dump($tmp);
// 删除指定数据
$tm = redis::zRem('test',$tmp[0]);
var_dump($tm);  //1成功 2失败

其它

自从redis火起之后,memcache越来越少人用啦。