缓存
缓存概念及类型:什么是缓存 - 与非网
缓存(cache)一般存放在runtime目录下,页面请求一次将请求内容进行缓存,下一次再次访问,会直接访问到缓存内容,不会再次请求服务器,减少服务器压力
场景:微博热搜榜,榜单后的点击次数,并不会实时更新,而是会隔一段时间进行计算,假如说榜单数据之和一分钟更新一次,但是在这一分钟内,用户会在页面不断进行请求,页面一直都是显示缓存数据,而并非实时数据,这就是缓存
缓存可在config中进行配置,包括缓存期限,缓存存放路径等等
//缓存
public function cacheTest(){
//设置缓存
//Cache::set('test','111',1);
//取出缓存
//dump(Cache::get('test'));
//助手函数
\cache('test','111',1);
sleep(10);
dump(\cache('test'));
}
Session
session:一般存放在服务器端,用来存储用户登录信息,也可存储验证码信息
//原生session
public function session(){
//开启session初始化
session_start();
//创建session
$_SESSION['user'] = '111';
//获取session
dump($_SESSION['user']);
}
//session
public function sessionTest(){
//框架中的session
//不需要手动初始化
//静态方法
Session::set('user','2');
Session::get('user');
//助手函数
session('test','1111');
dump(session('test'));
}
session拓展:
session的自动回收机制
session的自动回收机制配置信息存储于php.ini中,默认设置过期时间为1440秒,但是在平常网页的登录中,session即使到达了过期时间,也不会被清除,是因为session自动回收机制的原因,由于每次到了过期时间就要被清除,太多次的请求会导致服务器崩溃,所以自动回收机制的触发概率是千分之一,极大地减少了服务器的性能损耗
cookie
//框架定义cookie
public function cookieTest(){
//静态方法
Cookie::set('user','zhangsan');
Cookie::get('user');
//助手函数
\cookie('test','111');
dump(\cookie('test'));
}
验证码
(官方文档:https://static.kancloud.cn/manual/thinkphp5/154295)
登录注册页面都会使用到验证码,是为了防止现在的人工智能,有人蓄意整活,如果没有验证码,会有机器人不断的进行注册,总会写满数据库,导致网站新用户不能正常注册
题外:
队列(先进先出)
场景:
- 12306购票:预售1000张票,但是如果同时有1万个人,同时请求查询,同时下单的话,那么又没有一万张票,就采用队列限制,进行排队,售完1000张票就停止售卖。
- 医院挂号:谁来的早,谁排到前面,并且优先进入医生办公室