- 浏览: 1339674 次
- 性别:
- 来自: 深圳
最新评论
-
chinaxy1:
...
ON DUPLICATE KEY UPDATE重复插入时更新 -
b_l_east:
不一定哦,就算大小相当,in 和 exists的性能也会很大差 ...
mysql查询语句in和exists二者的区别和性能影响 -
llp1990311:
[size=x-small][/size]
如何正确防御xss攻击 -
home198979:
q315506754 写道还是佩服写c的 用其它语言一样可以实 ...
玩转深度优先搜索算法 -
q315506754:
还是佩服写c的
玩转深度优先搜索算法
文章列表
该算法由荷兰的一个牛人计算机科学家Edsger Wybe Dijkstra在1956年发现。
这套算法主要解决计算从一个点到其它的点的最短距离,而不是Floyd-Warshall算法的任意两点距离。
如图,现要计算出,从1号点到其它各点的最短距离,首先我还是转化成矩阵
由此可见1号点到其它点的初始距离为:
0 1 12 ∞ ∞ ∞
很明显2号点是离1号点最近的点,那么1号点到2号点的最短距离肯定就是直达了。那我就将2号点作为“换乘点”,来计算下距离:
0 1 10 4 ∞ ∞
这个过程有个专业术语“松弛”。2号点我也已经用了,那么4号点是离 ...
Robert W.Floyd和Stephen Warshall在1962年发表了Floyd-Warshall算法
如图,有1234,四个点,每个点都有一定的距离,比如1和2有2的距离,现在我想知道任意两个点的最短距离。
我先用“邻接矩阵存储法”将这个图转化为矩阵
竖坐标是出发点,横坐标是目的地,∞表示无穷大,也就是到不了,例如2到不1。有了这个矩阵,就可以用一个两维数组来存储。
现在切入重点:Floyd-Warshall算法。拿从4到3来看,4到3直达为12,要想缩短,只有“换乘”。
我发现4还可以直达1,1换乘到3,这时距离为11,比直达要短。那有什么比这 ...
小时候玩游戏,有个BOMB人的游戏,把BOMB放在一个空地上,将怪兽炸死,如图:
BOMB的威力只要不碰到墙壁,可以无限延长。那么我们应该把BOMB放哪里可以炸死最多的怪兽呢?
这个问题貌似很简单,一个一个地方试下不就知道了吗?是啊,那我们用代码来试下。
将图象转成字符,用#表示墙,用G表示怪兽,用.表示空地,最后得到的字符为:
#############
#GG.GGG#GGG.#
###.#G#G#G#G#
#.......#..G#
#G#.###.#G#G#
#GG.GGG.#.GG#
#G#.#G#.#.#.#
##G...G.....#
#G ...
XSS:Cross Site Script,本来简写是css,但为了区别样式表的css,因此在安全领域叫做“XSS”。
XSS攻击通常是指黑客通过"HTML注入"篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。
一、HttpOnly防止劫取Cookie
HttpOnly最早由微软提出,至今已经成为一个标准。浏览器将禁止页面的Javascript访问带有HttpOnly属性的Cookie。目前主流浏览器都支持,HttpOnly解决是XSS后的Cookie支持攻击。
已文大神可以略过。
当一台服务器已不能满足日益膨胀的站点时,就应该对数据库进行扩展。
一、主从复制
几乎所有的主流数据都支持复制,在mysql中,配置如下
开头先理解一下所谓的“均衡”
不能狭义地理解为分配给所有实际服务器一样多的工作量,因为多台服务器的承载能力各不相同,这可能体现在硬件配置、网络带宽的差异,也可能因为某台服务器身兼多职,我们所说的“均衡”,也就是希望所有服务器都不要过载,并且能够最大程序地发挥作用。
一、http重定向
当http代理(比如浏览器)向web服务器请求某个URL后,web服务器可以通过http响应头信息中的Location标记来返回一个新的URL。这意味着HTTP代理需要继续请求这个新的URL,完成自动跳转。
形象化设计模式实战 HELLO!架构 redis命令源码解析
倒水问题:有两个杯子,一个A升,一个B升,水有无限多,现要求利用这两杯子装C升的水。
想必很多人都可能被问到过这个问题,问题虽然简单的,但是要费些脑子。这个问题显然是个逻辑问题,那么就肯定能够用程序来实现。
现在我假设A=3,B=5,C=4。
大脑的运算过程:
第一步、把3装满,或把5装满(只有这
多维缩放可以为数据集找到一种二维表达形式。算法根据每对数据项之间的差距情况,尝试绘制出一幅图来,图中的各数据项之间的距离远近,对应于它们彼此间的差异程度。
以分类聚集算法中的数据为例
第一步:计算所有数据项两两间的实际距离(可参考皮尔逊算法或欧几里德算法)
第二步:将数据项随机放置在二维图上。
第三步:针对每两两构成的一对数据项,将它们的实际距离与当前在二维图上的距离进行比较,求出一个误差值
第四步:根据误差的情况,按照比例将每个数据项的所在位置移近或移远少许量。(每一个节点的移动,都是所有其它节点施加在该节点上的推或拉的结合效应。)
第五步:重复第三步、第四步(节点每移动一 ...
1、通过pip安装uwsgi
$sudo yum install python-devel
$sudo yum install python-pip
$sudo pip install pip --upgrade
$sudo yum install libpcre3 libpcre3-dev
$sudo yum install zlib1g-dev
如果安装版本错误,先卸载:
$pip uninstall uwsgi
$sudo yum remove uwsgi
python 版本最好是python 2.7.*
pip的版本应该是最新版本。查看pi ...
形象化设计模式实战 HELLO!架构 redis命令源码解析
一、Lpush,Rpush
t_list.c
void lpushCommand(redisClient *c) {
pushGenericCommand(c,REDIS_HEAD);
}
void rpushCommand(redisClient *c) {
pushGenericCommand(c,REDIS_TAIL);
}
形象化设计模式实战 HELLO!架构 redis命令源码解析
前面讲过了字典和压缩列表的实现,redis的哈希数据就是存储在这两种结构之中的,如果对这两种结构都非常清楚了,那么对哈希命令的实现的理解将会非常简单。
形象化设计模式实战 HELLO!架构 redis命令源码解析
用过Redis的应该对其哈希命令不陌生,在探索其实现之前,先得了解Redis的一个内部映射数据结构——压缩列表。
形象化设计模式实战 HELLO!架构
redis之字符串命令源码解析(一)
redis之字符串命令源码解析(二)
前面已经将set get命令的原理与过程作了详细的解析,下面对一些常用的命令做一些简单讲解,前提是前面的已经明白。
1、append方法解析
t_string.c中的appendCommand方法:
形象化设计模式实战 HELLO!架构
在redis之字符串命令源码解析(一)中讲了get的简单实现,并没有对如何取到数据做深入分析,这里将深入。
1、redisObject 数据结构,以及Redis 的数据类型
(一)中说set test "hello redis",“hello redis”会最终保存在robj中,redisObject是Redis的核心,数据库的每个键、值,以及Redis本身处理的参数都表示为这种数据类型,其结构如下:
/* The actual Redis Object */
/*
* Red ...
形象化设计模式实战 HELLO!架构
在redis的使用中,set/get无疑是使用最普遍的命令,我先telnet连接运行看看
先看get命令,获取一个key服务器返回了两行内容,是"$3\r\n123\r\n"(\r\n为换行符),不难发现3就是“123”的长度,redis的官方文档get返回值为:
Bulk string reply: the value of key, or nil when