鸣谢

好书推荐: >>更多
使用Redis实现抢购的一种思路 时间:2016-11-11 17:54:24 点击:20
抢购是如今很常见的一个应用场景,主要需要解决的问题有两个:1 高并发对数据库产生的压力2 竞争状态下如何解决库存的正确减少(“超卖”问题)对于第一个问题,已经很容易想到用缓存来处理抢购,避免直接操作数据库,例如使用Redis。重点在于第二个问题,我们看看下面一种常规的实现代码:<?php require('predis/src/Autoloader.php'); $redis = new PredisClient(array( 'scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => '6379' )); //redis 登录 $redis->auth('123456'); ...
使用grep --exclude/--include 不能通过某些文件 时间:2016-10-24 17:22:56 点击:38
我在找的字符串" foo= " ( 无引号) 的文本文件中的一个目录树。 是在一个普通Linux机器,我有bash shell :grep -ircl "foo="*在目录中也有很多二进制文件中匹配" foo= " 。 因为这些搜索结果或者减速无关,我想要跳过这些文件( 主要是搜索grep JPeg和PNG图像) 。 我怎么能做到?我知道有" exclude=PATTERN和include=PATTERN选项,但是模式是什么格式? grep的man page说,--include=PATTERN Recursein directories only searching file matching PATTERN.--exclude=PATTERN Recursein directories skip file m...
Linux查看进程运行的完整路径方法 时间:2016-08-26 10:58:51 点击:56
通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等。这时,我们需要通过以下的方法来查看进程的详细信息:Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看。ll /proc/PID 说明:cwd符号链接的是进程运行目录;exe符号连接就是执行程序的绝对路径;cmdline就是程序运行时输入的命令行命令;environ记录了进程运行时的环境变量;fd目录下是进程打开或使用的文件的符号连接。
MySQL索引原理及慢查询优化 时间:2016-05-27 16:33:46 点击:125
MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。本人从13年7月份起,一直在美团核心业务系统部做慢查询的优化工作,共计十余个系统,累计解决和积累了上百个慢查询案例。随着业务的复杂性提升,遇到的问题千奇百怪,五花八门,匪夷所思。本文旨在以开发工程师的角度来解释数据库索引的原理和如何优化慢查询。一个慢查询引发的思考select count(*) from task ...
MySQL key_len 大小的计算 时间:2016-05-27 15:42:30 点击:82
实验证明: 变长字段需要额外的2个字节,固定长度字段不需要额外的字节。而null都需要1个字节的额外空间,所以以前有个说法:索引字段最好不要为NULL,因为NULL让统计更加复杂,并且需要额外一个字节的存储空间。这个结论在此得到了证实。key_len的长度计算公式: varchr(10)变长字段且允许NULL : 10*(Character Set:utf8=3,gbk=2,latin1=1)+1(NULL)+2(变长字段) varchr(10)变长字段且不允许NULL : 10*(Character Set:utf8=3,gbk=2,latin1=1)+2(变长字段) char(10)固定字段且允许NULL : 10*(Character Set:utf8=3,gbk=2,latin1=1)+1(NULL) char(10)固定字段...
mysqlbinlog回放数据 时间:2016-05-20 17:14:12 点击:220
mysqlbinlog支持下面的选项:---help,-? 显示帮助消息并退出。---database=db_name,-d db_name 只列出该数据库的条目(只用本地日志)。--force-read,-f 使用该选项,如果mysqlbinlog读它不能识别的二进制日志事件,它会打印警告,忽略该事件并继续。没有该选项,如果mysqlbinlog读到此类事件则停止。--hexdump,-H 在注释中显示日志的十六进制转储。该输出可以帮助复制过程中的调试。在MySQL 5.1.2中添加了该选项。--host=host_name,-h host_name 获取给定主机上的MySQL服务器的二进制日志。--local-load=path,-l pat 为指定目录中的LOAD DATA INFILE预处理本地临时文件。--offset=N,-o N 跳过...