缓存
文章平均质量分 92
乐乐Java路漫漫
热衷于互联网JAVA开发,对新技术的探索孜孜不倦,对问题的研究废寝忘食,希望大家一起探索
展开
-
IO模型详解
系列文章目录文章目录系列文章目录1、理解用户空间和内核空间2.PIO与DMA3.缓存IO和直接IO3.1缓存IO4.磁盘IO和网络IO对比5.同步IO和异步IO6.阻塞IO和非阻塞IO1、理解用户空间和内核空间简单说,Kernel space 是 Linux 内核的运行空间,User space 是用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃了,内核也不受影响。虚拟内存被操作系统划分成两块:内核空间和用户空间,内核空间是内核代码运行的地方,用户空间是用户程序代码运行的地方。当进程原创 2021-01-07 14:37:02 · 247 阅读 · 0 评论 -
设计缓存系统时应该注意的几点问题
1.缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。缓存穿透解决方案有很多种方法可以有效地解决缓存穿透问题,最常见的则是采用布隆过滤器,将所有可能存在的数据...原创 2020-03-15 13:16:03 · 373 阅读 · 0 评论 -
缓存的实现原理简介
高速缓存是用来协调CPU与主存之间存取速度的差异而设置的。一般情况下,CPU的工作速度高,但内存的工作速度相对较低,为了解决这个问题,通常使用高速缓存,高速缓存的存取速度介于CPU和主存之间。系统将一些CPU在近几个时间段经常访问的内容存入高速缓冲,当CPU需要使用数据时,先在高速缓存中找,如果找到,就不必访问内存了,找不到时,再找内存,这样就在一定程度上缓解了由于主存速度低造成的CPU“停工待料...原创 2020-03-15 13:08:41 · 1451 阅读 · 0 评论 -
分布式锁 Jedis代码实例
分布式锁可靠性条件互斥性:在任意时刻,只有一个客户端能持有锁加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解了不会发生死锁:即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能枷锁正确的加锁方式public class RedisTool { private static final String LOCK_SUCCESS = "OK"; ...原创 2020-03-15 12:29:13 · 182 阅读 · 0 评论 -
避免商品超卖的4种方案
避免商品超卖的4中方案(以下是一些核心思路)第一种方案:在每次下订单前我们判断促销商品的数量够不够,不够不允许下订单,更改库存量时加上一个条件,只更改商品库存大于0的商品的库存,当时我们使用ab进行压力测试,当并发超过500,访问量超过2000时,还是会出现超卖现象。public function buyOne() { $shop = Shop::find(1); if (...原创 2018-08-02 18:20:55 · 16772 阅读 · 5 评论 -
memcachesession
<?phpclass MemcacheSession{ private static $_instance = null;//静态单例对象 protected $_memServers = ['192.168.0.13' => 11211, '192.168.0.12' => 11211]; private function __construct($host = '', $po原创 2017-07-11 22:56:50 · 271 阅读 · 0 评论 -
heredoc的使用
Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术。但是现在的一些论坛程序,和部分文章系统,都巧妙的使用heredoc技术,来部分的实现了界面与代码的准分离,phpwind模板就是一个典型的例子。 如下<?php $name = '乐乐';print <<<EOT<html> <head> <meta http-equiv="原创 2016-06-05 21:59:09 · 364 阅读 · 0 评论 -
ecshop数据缓存
数据缓存#读缓存$data = read_static_cache('recommend_goods');if($data==false){ #do something... #写缓存 write_static_cache('recommend_goods', $goods_data);}/** * 读结果缓存文件 * * @params string $ca原创 2016-06-03 11:04:10 · 1643 阅读 · 0 评论 -
ecshop页面缓存详解
ecshop缓存详解小结:主要根据$cache_id,caching参数判断是否需要缓存,若缓存文件存在且未过期则直接从缓存文件中读取缓存,若缓存文件过期则重新编译,判断编译文件是否过期,若未过期则直接生成缓存,若过期了则重新编译。is_cached方法解析display页面呈现方法catch页面编译方法代码块判断缓存是否存在:#判断是否存在该页面的缓存if (!$smarty->is_c原创 2016-06-02 11:50:45 · 3006 阅读 · 0 评论 -
三种缓存方式的详解
1.文件缓存一般情况下我们都将数据先缓存在文件当中,当需要的时候直接从文件中读取。则可以减少数据库查询的压力。class File{ private$_dir; constEXT = '.txt'; publicfunction __construct(){ $dir= st原创 2016-05-27 16:42:39 · 1758 阅读 · 0 评论