缓存穿透

什么是缓存穿透?

一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。

如何避免?

1:对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该key对应的数据insert了之后清理缓存。
2:对一定不存在的key进行过滤。可以把所有的可能存在的key放到一个大的Bitmap中,查询时通过该bitmap过滤。【感觉应该用的不多吧】

缓存雪崩

什么是缓存雪崩?

当缓存服务器重启或者大量缓存集[……]

继续阅读

mysql join
一般说join时 小表放左边,大表放右边。就是小表作为驱动表。
网上找到了另一种说法:对于nested loops join和hash join来说,小的结果集先访问,大的结果集后访问(即与表的大小没有关系,与具体sql返回的结果集大小有关);而对于merge sort join 来说,先访问谁效率都是一样的。
如用户表(10条记录),用户帖子表(100表记录),也就是每个用户发了10条。用用户id关联,查看用户所有帖子。以用户表为左表,作为驱动表。
1.没有索引的情况下。就是遍历用户表,根据user_id与去帖子表去找这个用户发的帖子,找到了则返回。如果[……]

继续阅读

在 MySQL 中,只有一种 Join 算法,就是大名鼎鼎的 Nested Loop Join,他没有其他很多数据库所提供的 Hash Join,也没有 Sort Merge Join。顾名思义,Nested Loop Join 实际上就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果。如果还有第三个参与 Join,则再通过前两个表的 Join 结果集作为循环基础数据,再一次通过循环查询条件到第三个表中查询数据,如此往复。
还是通过示例和图解来说明吧,后面将通过我个人数据库测试环境中的一个 example(自行设计,非My[……]

继续阅读

 

离职原因,钱不够,不开心
从这两方面入手
1.
团队技巧分享,比如,以前使用zend studio 找文件,和查看函数很麻烦,后来发现有快捷键。
比如,有些人用phpstrom,发现效率比zend studio要好,这样可以推荐给其它同事。其它同事并不知道他有什么优势,因为没用过,也没了解过。这时开个简短分享会,给他们演示下,立马明白了。
或者招集些使用phpstom的人,让他们每个人都说出一个技巧或快捷键,必须要说。可以先写的纸上,即使很多人有重复也没关系,说明这个功能好用,大家都喜欢。
还可以分享各个框架的使用优点,经常有人吹哪个框架好,可以拿出[……]

继续阅读

http://www.cnblogs.com/wghao/archive/2016/11/06/6035363.html

 

1. 了解数组

PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。详细的解释可参见:PHP.net中的Array数组    。

2.例子:一般的数组

这里,我通过一个简单的例子,并使用图形方式来了解数组。

//1.-----------------------------------

$a = array(3 => 'a', 1 => 'b', 2 =>[......]

继续阅读

版本有很多风格
原来用symfony的风格是 /v2/user/login
discuz直接用数字 是 /2/user/login
他们有共同特点都url变了,并且要新建个目录v2,或2,然后在里面写userController

后来网上看了篇文章,得到了启发。让url不变,让版本在headert里传过来。
header头设置
version:2

服务端
$version = $_SERVER[‘HTTP_VERSION’];

配置

$v = [
    "1.0" =>[],
    // news/lists?v=1.0进来,发现1.0空,取默认的[......]

继续阅读

使用onethink 传图片遇到 uploadify httpError404
以前都正常,今天为何不行。于是开启uplaodify的debug选项{ ‘debug’ : true,},发现仍然只报 404错误,但没有具体有用信息。
难道是代码有问题?服务器有问题?一个个看,都看不出什么问题,折腾了1个多小时都不行。头大了,出去转了一圈,冷静了下,路上也思考了下,可以用wirshark抓包看下。
回来后用wirshark抓flash包 加上了过滤规则 ip.addr==192.168.3.211 ,我去没有仍然发现。
线上有个是正常的,不如去线抓下线上的包,上传是成功了,但没有[……]

继续阅读

英文来自:Asas Dhamani

【编者按】Github作为全球最大的开源项目托管平台,每天都会有许多项目托管在上面,有些程序员会好奇,这么多项目,有哪些项目是基于Java或者Python开发的呢?本文作者或许就是带着这样的好奇,对Github上各门编程语言进行了统计。但他并未透露具体的统计方法,本文数据仅供大家参考。

以下为译文

我一直想了解一下各个语言在Github上的分布情况,虽然以前有过相关文章出现,但我觉得他们写的都不是很清楚,为了更加地一目了然,我决定自己动手。

Stars

目前,Github上有68个存储库(repositories,下[……]

继续阅读

中午吃饭有人走后门,有人走前门。大多数选择走后面,因为后门在西边,大门在东面。而饭店也在西面。所以大家觉得走西边的后门近。但有同事发现,不管哪个门,必然经过对角线的点。大厦的造成类似于菱形,而电梯正好在处理菱形的中心点。从这个点到两个门的距离是一样的。所以说这两边距离是一样的,但前门不用刷卡开锁,节省了时间。所以前面快。但很多人还是走后面的西门。[……]

继续阅读