php开发app运用那些技术,PHP开发APP接口(三):核心技术

1)静态缓存

保存在磁盘上的静态文件,用PHP生成数据放入静态文件中,以此减轻数据库的压力

1)PHP静态文件缓存类

class File {

private $_dir; // 默认路径

const EXT = '.txt'; // 文件后缀名

public function __construct() {

// dirname() 当前文件目录

$this->_dir = dirname(__FILE__) . '/files/'; //默认路径为当前文件下的files下

}

/**

* [cacheData description]

* @Author ZJC

* @DateTime 2017-02-15T10:31:38+0800

* @param [type] $key [缓存文件文件名]

* @param string $value [缓存数据]

* @param string $path [缓存路径]

* @return [type] [description]

*/

public function cacheData($key, $value = '', $path = '') {

$filename = $this->_dir . $path .$key . self::EXT;

if ($value !== '') { // 将value值写入缓存

if(is_null($value)) {

return @unlink($filename);

}

// 判断是否存在文件目录,如果不存在,则创建

$dir = dirname($filename);

if (!is_dir($dir)) {

mkdir($dir, 0777);

}

// file_put_contents:将一个字符串写入文件

// int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )

// $data部分最好为字符串形式,因为不支持多维数组;(序列化,JSON都可以)

return file_put_contents($filename, json_encode($value)); // c成功返回字节数,失败返回FALSE

}

if(!is_file($filename)) { // 显示缓存

return FALSE;

} else {

return json_decode(file_get_contents($filename), true);

}

}

}1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

2)调用方法

require_once('./file.php');

$data = array(

'id' => 1,

'name' => 'singwa',

'type' => array(4,5,6),

'test' => array(1,45,67=>array(123, 'test')),

);

$file = new File();

// 写入缓存

if($file->cacheData('index_mk_cache', $data)) {

// var_dump($file->cacheData('index_mk_cache'));exit;

echo "success";

} else {

echo "error";

}

// 查看缓存

if($file->cacheData('index_mk_cache')) {

var_dump($file->cacheData('index_mk_cache'));exit;

echo "success";

} else {

echo "error";

}

// 删除缓存

if($file->cacheData('index_mk_cache', null)) {

echo "success";

} else {

echo "error";

}1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

2)Memcache和Redis缓存技术

Memcache,Redis都需要安装才能使用;

1. Memcache和Redis都是用来管理数据的(一种缓存服务)

2. 他们数据都是存放在内存里的(获取速度快)

3. Redis可以定期将数据备份到磁盘(持久化)

4. Memcache只是简单的key/value缓存

5. Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储1

2

3

4

5

6

7

如何操作数据

命令包括以下:

1. 开启redis客户端

2. 设置缓存值 - set index-mk-cache 数据

3. 获取缓存数据 - get index-mk-cache

4. 设置过期时间 - setex key 10 'cache'

5. 删除缓存 - del key1

2

3

4

5

php操作Redis

1. 按照phpredis扩展

2. php链接redis服务-connect(127.0.0.1, 6379)

3. set 设置缓存

4. get 获取缓存1

2

3

4

设置 redis 缓存,文件地址:/var/www/app/setCache.php

$redis = new Redis();

$redis->connect('192.168.2.110', 6379);

// 设置缓存

// $redis->set('vision', 123);

// 设置定期缓存,15秒失效

$redis->setex('vision2', 15, 'heoolshdfksjfl');1

2

3

4

5

6

7

8

获取 redis 缓存,文件地址:/var/www/app/getCache.php

$redis = new Redis();

$redis->connect('192.168.2.110', 6379);

var_dump($redis->get('vision2'));1

2

3

4

php操作Memcache

1. 安装memcache扩展

2. 链接服务-connect('memcache_host', 11211);

3. set 设置缓存

4. get 获取缓存1

2

3

4

设置和获取 memcache 与 redis 相似,文件地址:/var/www/app/memcache.php

$memcache_obj = new Memcache;

/* connect to memcached server */

$memcache_obj->connect('127.0.0.1', 11211);

/*

设置'var_key'对应值,使用即时压缩

失效时间为50秒

*/

$memcache_obj->set('var_key', 'some really big variable', MEMCACHE_COMPRESSED, 20);

echo $memcache_obj->get('var_key');1

2

3

4

5

6

7

8

9

10

11

12

3)定时任务

学习要点

1. 掌握如何设置定时任务常用命令

2. 掌握如何定时运行PHP程序1

2

定时任务命令

1. 定时任务服务提供crontab命令来设定服务

2. crontab -e // 编辑某个用户的cron服务

3. crontab -l // 列出某个用户cron服务的详细内容

4. crontab -r // 删除某个用户的cron服务1

2

3

4

crontab格式

分 小时 日 月 星期 命令

* * * * * *

0-59 0-23 1-31 1-12 0-6 command

注:"*"代表取值范围内的数组

"/"代表每、比如每分钟等

*/1 * * * * /usr/bin/php /var/www/html/test.php1

2

3

4

5

6

7

8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值