use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Redis;
/**
* @param $key string
* @param $memberId integer
* @throws \ShallBuy\LaravelBase\Common\Exception\Exceptions\BusinessException
*/
private static function memberIdExists($key, $memberId) {
if (Redis::sismember($key, $memberId)) {
$len = Redis::scard($key);
$memberIds = Redis::smembers($key);
Log::info(sprintf("len=%d, members=[%s]", $len, implode(',', $memberIds)));
throw ExceptionFactoryFacade::business(CodeMessageConstant::ERROR_MARQUEE_UNSUBSCRIBED);
}
}
public function unsubscribe($memberId) {
$key = Marquee::CACHE_HIDE_MEMBERS_LIST;
/** @var $status \Predis\Response\Status */
$status = Redis::type($key);
$type = $status->getPayload();
// 已存在重名的list
if (strncmp($type, "list", 4) == 0) {
$len = Redis::llen($key);
$a = Redis::lrange($key, 0, $len);
Redis::del($key);
foreach ($a as $id) {
Redis::sadd($key, $id);
}
}
// 除set以外的其他类型, 直接删除
else if (strncmp($type, "set", 3) != 0) {
Redis::del($key);
return Redis::sadd($key, $memberId);
}
self::memberIdExists($key, $memberId);
return Redis::sadd($key, $memberId);
}
laravel中使用redis 示例
原创
©著作权归作者所有:来自51CTO博客作者mzh9112的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Laraval IDE 自动补全插件 laravel-ide-helper
0 一、背景 我们在实际的开发场景中,不少人或许已经碰到了使用PHPStorm不能自动补全门面(Facade)的问题,或者其他类通过容器调用时无法补全或
Laravel Tools ide php laravel -
laravel用redis队列 laravel redis
在介绍laravel框架使用redis前,我们先看一下,非框架中是如何使用Redis的:1,connect描述:实例连接到一个Redis. 参数:host: string,port: int 返回值:BOOL 成功返回:TRUE;失败返回:FALSE示例: <?php $redis = new redis(); $result = $redis->connect('127.0.0.
laravel用redis队列 laravel中加载Redis laravel中Redis与非框架操作R redis Redis