封装redis操作 php版本
发布时间:2021-08-28 03:48:07 所属栏目:大数据 来源: https://www.jb51.cc
导读:?PHPnamespace AppService;use AppServiceBaseService;use IlluminateSupportFacadesRedis;/* * redis操作相关方法 */class RedisService extends BaseService { /** * * @param string $key reids的get的key * @param string $class 待执行的方法的cl
<?PHP
namespace AppService;
use AppServiceBaseService;
use IlluminateSupportFacadesRedis;
/*
* redis操作相关方法
*/
class RedisService extends BaseService {
/**
*
* @param string $key reids的get的key
* @param string $class 待执行的方法的class AppServiceAdminService
* @param string $function 待执行的方法的function getSupplyNum
* @param array $parameters 待执行的方法的parameters 参数 ...$parameters [] 数组自动绑定
* @param int $survivalTime redis存储时间
* $returnData 调用方法是否必须有数据
* @return type
* @throws Exception
*/
public static function get(string $key, string $class = '', string $function = '', array $parameters = [], int $survivalTime = 3600, $returnData = true) {
if (empty($key)) {
throw new Exception('key不能为空');
}
$keyValue = Redis::get($key);
if (empty($keyValue)) {
if (!method_exists($class, $function)) {
throw new Exception($class . '此类的方法' . $function . '不存在');
}
/*
* 参数自动绑定,参数位置不能错
* $value 最好返回是数组,
*/
$value = $class::$function(...$parameters);
// p($value);
if (empty($value) && $returnData) {
throw new Exception($class . '此类的方法' . $function . '返回数据为空,请检查调用方法');
}
Redis::set($key, json_encode($value));
Redis::expire($key, $survivalTime);
return json_encode($value);
}
return $keyValue;
}
}
demo? ?AdminService //近一个月数据
public static function getMonthSaleOrderData($shop_id) {
//近一个月订单总金额
$saleOrderKey = 'MonthSaleOrder' . $shop_id;
$data = RedisService::get($saleOrderKey, 'AppServiceAdminService', 'MonthSaleOrderData', [$shop_id]);
return json_decode($data, true);
}
public static function MonthSaleOrderData($shop_id) {
$time = get_lately_month_start_to_end();
$query = SaleOrder::where('shop_id', $shop_id)->where('is_delete', 10)
->where('create_time', '>=', $time['start_time'])
->where('create_time', '<=', $time['end_time']);
$saleOrderAmount = $query->sum('order_amount');
$saleOrderNumber = $query->sum('order_number');
$saleOrderCount = $query->count();
$data = [
'saleOrderAmount' => $saleOrderAmount,
'saleOrderNumber' => $saleOrderNumber,
'saleOrderCount' => $saleOrderCount,
];
return $data;
}
? (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
