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越来越少人用啦。