前天听同事说让redis缓存永久不失效,然后自己做个key去控制缓存失效,如果到了过期了,则给第一个要访问db加锁,先用setnx,返回1,则获取到了锁,相当于拿到门票了,你可以进入db了。 后面人再想访问db,也得先setnx,发现返回0,说明没有获取到锁,就访问不了db了,还访问原来的老缓存。[……]

继续阅读

答案是:除域名,ip,端口外其它都加密。

昨天和同事说到传接口参数
我:直接用get,
同事:用post安全点。
我:说差不多吧,没本质区别。
同事:https时post参数抓包抓取不到,而get里参数可以抓取到。

今天就做个实验,看下是不是能抓取到https下的get的参数,用[……]

继续阅读

NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各[……]

继续阅读

网友提问:
为什么数据在内存里是以补码的形式存储?正数好理解,就是其本身.负数为何不能直接第一位1表示负,其后部分就按照正数表示.比如12345和-12345二进制表示只是第一位一个是0一个是1,后面15位一样.初学c语言不太了解其中的原因.
老师回答:
补吗是为了加减运算才出现的.我们都[……]

继续阅读

一张图让你了解编程语言发展史

我们都知道,编程语言是一组用来定义计算机程序的语法规则。它是一种被标准化的交流语言,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。尽管人们多次试图创造一种通用的程序设计语言,却没有一次尝[……]

继续阅读

缓存穿透

什么是缓存穿透?

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

如何避免?

1:对查询结果为空[……]

继续阅读

mysql join
一般说join时 小表放左边,大表放右边。就是小表作为驱动表。
网上找到了另一种说法:对于nested loops join和hash join来说,小的结果集先访问,大的结果集后访问(即与表的大小没有关系,与具体sql返回的结果集大小有关);而对于merge sort j[……]

继续阅读