<?php
namespace Framework\Lib;
use Illuminate\Http\Request;
class CatcheModel {
/**
* 列表数据
* 从redis读取,如果redis无,则读取静态文件,并写入redis
* @param string $key key值
* @param int $page 当前页数
* @param int $size 每页显示条目
* @return boolean|array
*/
public static function get_page_list($key,$page = 0, $size = 0) {
/*
* 从redis或file中读取分页的数据
* 返回:array
*/
if ($key=="") {
return "";
}
// 获取redis内容
$data = self::get_cache_data($key);
$result = json_decode($data,true);
if(!EMPTY($result->data)) {
$tmp = self::get_page_data($result->data, $page, $size);
}
else {
return $data;
}
$result->data = $tmp;
return json_encode($result);
}
//在缓存中读取json内容
public static function get_cache_data($key)
{
$data ='';
if (empty($key) || $key=="") {
return null;
}
$redis = app('redis')->connection('shan');
$datas = $redis->get($key);
if(!empty($datas))//缓存里查找该内容
{
$data = $datas;
}
if($datas !="")
return json_decode($data,true);
else
return null;
}
/**
* 计算获取数组中的分页数据
* @param array $data 数据集合
* @param int $page 当前页数
* @param int $size 每页显示条目
* @return boolean|array
*/
public static function get_page_data($data = null, $page = 0, $size = 0) {
if (empty($data) || !is_array($data)) {
return null;
}
if (!empty($page) && !empty($size)) {
$count = count($data); // 计算数组元素数目
$start = (($page - 1) * $size); // 开始位,从0开始
$end = ($start + $size) > $count ? $count : ($start + $size); // 结束位,最大元素数目
for ($i = $start; $i < $end; $i++) {
$result[] = $data[$i];
}
} else {
$result = $data;
}
return $result;
}
/*
* 将指定数据以指定key值写入redis缓存中
*/
public static function save_cache_data($key,$data,$expire=86400) {
$redis = app('redis')->connection('default');
$redis->set($key, $data); #生成缓存
$redis->expire($key, $expire);
}
}
Lumen(laravel轻量级)封装redis分页类
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 最近写的项目中有用到数据库,写了不少蛋疼的sql语句,每次都是好几行代码,而且每次都是重复的没有一点技术含量的代码...
- 在分布式系统中,各个进程(本文使用进程来描述分布式系统中的运行主体,它们可以在同一个物理节点上也可以在不同的物理节...