前天听同事说让redis缓存永久不失效,然后自己做个key去控制缓存失效,如果到了过期了,则给第一个要访问db加锁,先用setnx,返回1,则获取到了锁,相当于拿到门票了,你可以进入db了。 后面人再想访问db,也得先setnx,发现返回0,说明没有获取到锁,就访问不了db了,还访问原来的老缓存。 觉得这个想法很妙,可以解决之前有提到缓存雪崩问题,后来网上也搜索了下,也有相关文章提到这方面的内容。
原文 http://blog.csdn.net/hengyunabc/article/details/20735701
最近看到nginx的合并回[……]
答案是:除域名,ip,端口外其它都加密。
昨天和同事说到传接口参数
我:直接用get,
同事:用post安全点。
我:说差不多吧,没本质区别。
同事:https时post参数抓包抓取不到,而get里参数可以抓取到。
今天就做个实验,看下是不是能抓取到https下的get的参数,用get访问了个https接口,得到下面包。
1-3号包 握手包
4-11号包 客户端,服务器hello包和key交换.中间还发现有证书太大,有PDU,分包了。
12号包 就是get请求了,点开看了下,什么也看不出来,就是加密的。而且连请求方式到底是get还是post都不知道。
15号包就是服[……]
intval opcode
intval.php
<?php
$a = '10';
echo intval($a);
[root@localhost ~]# php -dvld.active=1 intval.php
Finding entry points
Branch analysis from position: 0
Jump found. (Code = 62) Position 1 = -2
filename: /root/intval.php
function name: (null)
number of ops: 6
compiled vars:[......]
intval定义
PHP_FUNCTION(intval)
{
zval **num;
long arg_base;
int base;
switch (ZEND_NUM_ARGS()) {
case 1:
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &num) == FAILURE) {
return;
}
base = 10;
break;
case 2:
if (zend_parse_parameters(ZEND_[......]
mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount –bind /dev/shm/tmp /tmp
临时修改/dev/shm大小
#mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm
mount -t tmpfs -o size=20m tmpfs /tmp 临时挂载使用[……]
NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。
一、版本
通常的linux发行版中都带有NetCat(简称nc),甚至在拯救模式光盘中也由busybox提供了简版的nc工具。但不同的版本,其参数的使用略有差异。
NetCat 官方地址:http://netcat.sourceforge.net/
引用[ro[……]
一张图让你了解编程语言发展史
我们都知道,编程语言是一组用来定义计算机程序的语法规则。它是一种被标准化的交流语言,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。尽管人们多次试图创造一种通用的程序设计语言,却没有一次尝试是成功的。之所以有那么多种不同的编程语言存在的原因是设计程序语言的初衷不同,对语言学习曲线的追求不同,不同程序之间的运行成本差异等。
下面这张图片描绘了整个编程语言的历史。包括各种编程语言的发明人,编程语言的特点和适用领域,被什么网站或公司使用等。
编程语言的历史早于真正意义的[……]
[……]