[Laravel] 11 - WEB API : cache & timer
前言
一、资源
Ref: https://www.imooc.com/video/2870
二、缓存
缓存:静态缓存、Memcache、redis缓存
Ref: [Laravel] 09 - Functional models
put(), add(), forever(), has(), get(), pull(), forget()
配置文件:[config/cache.php]
注意,本篇的缓存是php,而非基于laravel。
静态缓存
一、生成静态缓存
获取文件的当前目录:dirname(__FILE__)
目录操作:is_dir(), mk_dir()
写文件:file_put_contents ----> ref: http://www.runoob.com/php/func-filesystem-file-put-contents.html
<?php class File {
private $_dir;
const EXT = '.txt'; public function __construct() {
$this->_dir = dirname(__FILE__) . '/files/';
}
public function cacheData($key, $value = '', $cacheTime = 0) {
$filename = $this->_dir . $key . self::EXT;
// 写!
if($value !== '') { // 删!
if(is_null($value)) {
return @unlink($filename);
} // (1).创建目录
$dir = dirname($filename);
if(!is_dir($dir)) {
mkdir($dir, 0777);
} $cacheTime = sprintf('%011d', $cacheTime); // (2).以json字符串的形式写入到file中
return file_put_contents($filename, $cacheTime . json_encode($value));
} --------------------------------------------------------------------------
// 读!
if(!is_file($filename)) {
return FALSE;
}
$contents = file_get_contents($filename);
$cacheTime = (int)substr($contents, 0 ,11);
$value = substr($contents, 11);
if($cacheTime !=0 && ($cacheTime + filemtime($filename) < time())) {
unlink($filename);
return FALSE;
}
return json_decode($value, true); }
} $file = new File(); echo $file->cacheData('test1'); # 使用cacheData
cacheData的另一个使用:生成了 index_mk_cache.txt
<?php require_once('./file.php'); $data = array(
'id' => 1,
'name' => 'singwa',
'type' => array(4,5,6),
'test' => array(1,45,67 => array(123, 'tsysa'),),
};
----------------------------------------------------
$file = new File();
if($file->cacheData('index_mk_cache', $data)) {
echo "success";
} else {
echo "err";
}
二、获取静态缓存
没有第二个参数,就表示是”获取“。
$file = new File();
if($file->cacheData('index_mk_cache')) {
echo "success";
} else {
echo "err";
}
三、删除静态缓存
删除文件的函数:
unlink($filename);
Memcache、Redis缓存
一、简介
二、开启Redis服务
- 打开redis的端口服务
redis-server 6379.conf
- 进入安装目录
cd /wxh/redis-stable/src
- 进入命令行
$ redis-cli
127.0.0.1:6379
三、终端链接Redis
Set and Get
12sec后超时删除,del手动删除
四、PHP连接Redis
Step 01: 安装phpredis扩展。
Step 02:
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->set('singwal', 123); $redis->setex('singwa2', 15, 'xxxxxx');
Step 03:
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->get('singwal');
var_dump($redis->get('singwal');
五、操作 Memcache
方式一
连接:memcache_connect()
设置:memcache_set()
获取:memcache_get()
方式二
连接:memcache_obj->connect()
设置:memcache_obj->set()
获取:memcache_obj->get()
定时任务
一、简介
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
cron的配置文件称为“crontab”,是“cron table”的简写。
- 定时格式
- 定时例子
二、Crontab操作
- cron服务
cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态
- 写定时任务
sudo crontab -e
- 列出定时任务
sudo crontab -l
- 删掉所有的定时任务
sudo crontab -r
- 示范
利用Crontab定时执行该文件即可
[Laravel] 11 - WEB API : cache & timer的更多相关文章
- [Laravel] 12 - WEB API : cache implement
前言 Ref: https://www.imooc.com/video/2873 服务端如何为客户端(app)的首页提供数据接口, 本篇用此作为例子演示接口的实现. 单例模式 一.三大原则 单例实现 ...
- [Laravel] 10 - WEB API : wrapper
前言 一.常用的解决方案 React 前端 + PHP (Laravel) 后端 Such as "some exposure to WEB API’s and/or RESTful“. 使 ...
- [Laravel] 13 - WEB API : update & error tracking
前言 一.大纲 Ref: https://www.imooc.com/video/3134 版本升级分析以及数据表设计 版本升级分析 掌握如何设计版本升级数据表 版本升级接口开发以及APP演示 二.数 ...
- [Laravel] 14 - REST API: Laravel from scratch
前言 一.基础 Ref: Build a REST API with Laravel API resources Goto: [Node.js] 08 - Web Server and REST AP ...
- [转]Web API OData V4 Keys, Composite Keys and Functions Part 11
本文转自:https://damienbod.com/2014/09/12/web-api-odata-v4-keys-composite-keys-and-functions-part-11/ We ...
- 返璞归真 asp.net mvc (11) - asp.net mvc 4.0 新特性之自宿主 Web API, 在 WebForm 中提供 Web API, 通过 Web API 上传文件, .net 4.5 带来的更方便的异步操作
原文:返璞归真 asp.net mvc (11) - asp.net mvc 4.0 新特性之自宿主 Web API, 在 WebForm 中提供 Web API, 通过 Web API 上传文件, ...
- Asp.Net Web API中使用Session,Cache和Application的几个方法
在ASP.NET中,Web Api的控制器类派生于ApiController,该类与ASP.NET的Control类没有直接关系,因此不能像在Web MVC中直接使用HttpContext,Cache ...
- ABP 教程文档 1-1 手把手引进门之 AngularJs, ASP.NET MVC, Web API 和 EntityFramework(官方教程翻译版 版本3.2.5)含学习资料
本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 转载请注明出处:http://www.cnblogs.com/yabu007/ 谢谢 官方文档分四部分 一. 教程文档 二.ABP 框架 三. ...
- [水煮 ASP.NET Web API2 方法论](1-1)在MVC 应用程序中添加 ASP.NET Web API
问题 怎么样将 Asp.Net Web Api 加入到现有的 Asp.Net MVC 项目中 解决方案 在 Visual Studio 2012 中就已经把 Asp.Net Web Api 自动地整合 ...
随机推荐
- 菜鸟nginx源代码剖析数据结构篇(八) 缓冲区链表ngx_chain_t
菜鸟nginx源代码剖析数据结构篇(八) 缓冲区链表 ngx_chain_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog. ...
- PostgreSQL学习手册(角色和权限)
原文地址:http://www.cnblogs.com/stephen-liu74/archive/2012/05/18/2302639.html PostgreSQL是通过角色来管理数据库访问权限的 ...
- 一篇文章让你学透Linux系统中的more命令
Linux 下有很多实用工具可以让你在终端界面查看文本文件.其中一个就是 more. more 跟我之前另一篇文章里写到的工具 —— less 很相似.它们之间的主要不同点在于 more 只允许你向前 ...
- vmware虚拟机环境下配置centos为静态IP的步骤
一.修改centos配置文件 配置文件位于/etc/sysconfig/network-scripts/ifcfg-eth0 修改的内容为: ONBOOT=yes BOOTPROTO=static I ...
- 如何诊断windows性能问题
直接使用perfmon中的性能诊断工具
- Java中多环境Logback配置与ELK日志发送
Java中多环境Logback配置与ELK日志发送 一.项目基于SpringBoot实现,引入SpringBoot相关库后,本文还要讲上传到ELK的Logstash,所以需要在pom.xml中加入 ...
- SqlDateTime overflow / SqlDateTime 溢出
Error - SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM SqlDat ...
- TLS/HTTPS 证书生成与验证
最近在研究基于ssl的传输加密,涉及到了key和证书相关的话题,走了不少弯路,现在总结一下做个备忘 科普:TLS.SSL.HTTPS以及证书 不少人可能听过其中的超过3个名词,但它们究竟有什么关联呢? ...
- 安卓打印实现打印pdf文档
先声明一下,此处的打印非pos打印机打印和蓝牙打印机打印,如果想查找打印小票的pos打印机请进入下面的传送门,蓝牙打印目前没做过,有做过的请指教. pos打印机传送门: 1. https://www. ...
- 各个屏幕的logo尺寸要求
DENSITY SIZE LOCATION RATIO SCREEN MARGIN XXXHDPI 192×192 drawable-xxxhdpi 4 640 DPI 12 to 16 pixels ...