03 2014 档案
摘要:众所周知,Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。 俺所在的公司经营的主要是基于web和wap两个平台的手机游戏门户网站,分布式缓存解决方法正好有用武之地,多平台共享使用memcache缓存数据 (php+mysql+memcache),确实很大程度的缓解访问量过大对数据库的压力。但是,在享受便利的同时,同样也遇到相信对大多数 memcache使用者都造成困扰的一个问题:大容量缓存数据的更新难题。 说起缓存数据更新,可能有些兄弟会说,memcached本身有::delete()方法可以去更新指定key的数据,是的,对显式缓存key的数据..
阅读全文
摘要:PHP读写文件高并发处理实例 http://blog.sina.com.cn/s/blog_3dbab2840100euqi.htmlhttp://phpqinsir.blog.163.com/blog/static/221827065201412732233625/
阅读全文
摘要:usermod -g group loginname 强行设置某个用户所在组usermod -G groups loginname把某个用户改为 group(s) usermod -a -G groups loginname把用户添加进入某个组(s)
阅读全文
摘要:提示configure: error: APR not found. Please read the documentation.经网上查阅资料才知道这是Apache的关联软件在apr.apache.org网站上可以下载此软件(apr-1.4.5.tar.gz);编译安装完成后;本以为就可以相安无事的进行Apache的安装 ;没想到 突然间报了个configure: error: APR-util not found. Please read the documentation然后就下载apr-util-1.5.3.tar.bz2进行编译安装yum remove apr-util-devel
阅读全文
摘要:如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率。本文将通过实例的方式向你介绍 history 命令的 15 个用法。使用 HISTTIMEFORMAT 显示时间戳当你从命令行执行 history 命令后,通常只会显示已执行命令的序号和命令本身。如果你想要查看命令历史的时间戳,那么可以执行:# export HISTTIMEFORMAT='%F %T '# history | more1 2008-08-05 19:02:39 service network restart2 2008-08-05 19:02:39 exit3 20
阅读全文
摘要:查看SELinux状态:1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态SELinux status: enabled2、getenforce ##也可以用这个命令检查关闭SELinux:1、临时关闭(不用重启机器):setenforce 0 ##设置SELinux 成为permissive模式 ##setenforce 1 设置SELinux 成为enforcing模式2、修改配置文件需要重启机器:修改/etc/selinux/config 文件...
阅读全文
摘要:cat是用于查看普通文件的。zcat 是用于查看压缩的文件 单个磁盘的容量现在已经超过了 1TB,但是大型数据文件、日志文件、图像以及电影等媒体文件很快就把磁盘装满了。为了节省空间,可以把许多文件压缩到原大小的几分之一。例如,Apache 日志文件(是简单的文本)可以压缩到原大小的十分之一。 尽管压缩可以节省磁盘空间,但是也会增加工作量。例如,如果需要分析压缩的 Apache 日志文件,就必须解压它,处理数据,然后重新压缩它。如果有大量日志文件(如果保留分析趋势所需的记录,这种情况很常见),那么开销会非常大。 幸运的是,gzip 套件包含许多可以 “在原地” 处理压缩文件的实用程序。zcat.
阅读全文
摘要:一、windows 1、查询端口占用情况 cmd > netstat -ano 2、查询8080端口是否被占用 cmd > netstat -ano|findstr 8080 3、查询哪个程序占用了端口 cmd > tasklist|findstr PID 进程号通过2查询可以得到 4、终止该占用进程 cmd > ntsd -c q -p PID 二、Linux 1、查询8080端口是否被占用,并可以查看pid/程序名 netstat -apn | grep 8080Q 2、查看详细信息 ps -ef | grep PID 3、终止该进程 kill -9 PID...
阅读全文
摘要:分表是分散数据库压力的好方法。分表,最直白的意思,就是将一个表结构分为多个表,然后,可以再同一个库里,也可以放到不同的库。当然,首先要知道什么情况下,才需要分表。个人觉得单表记录条数达到百万到千万级别时就要使用分表了。1,分表的分类1>纵向分表将本来可以在同一个表的内容,人为划分为多个表。(所谓的本来,是指按照关系型数据库的第三范式要求,是应该在同一个表的。)分表理由:根据数据的活跃度进行分离,(因为不同活跃的数据,处理方式是不同的)案例:对于一个博客系统,文章标题,作者,分类,创建时间等,是变化频率慢,查询次数多,而且最好有很好的实时性的数据,我们把它叫做冷数据。而博客的浏览量,回复数
阅读全文
摘要:涉及知识点:1,主从复制,读写分离 对主库修改数据,查询使用从库。一主多从,来降低数据库读取压力。2,分库分表 查看详情根据实体业务来分库,分表。如,根据数据的活跃性,根据用户uid等。3,mysql 不同存储引擎区别 查看详情InnoDB 用于数据完整性/写性能要求比较高的应用. MyISAM 适合查询应用。一个简单的图例:分库分表:http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.htmlhttp://bbs.csdn.net/topics/340181289http://bbs.csdn.net/topics/390560149?page=1
阅读全文
摘要:1,事务处理innodb 支持事务功能,myisam 不支持。Myisam 的执行速度更快,性能更好。2,select ,update ,insert ,delete 操作MyISAM:如果执行大量的SELECT,MyISAM是更好的选择InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表3,锁机制不同InnoDB 为行级锁,myisam 为表级锁。注意:当数据库无法确定,所找的行时,也会变为锁定整个表。如:update table set num = 10 where username like "%test%";4,
阅读全文
摘要:我们在编程中最常用的模式就是单例模式了,然而单例模式都用在什么场合?为什么不用静态方法而要用单例模式呢?要搞清这些问题,需要从静态方法和非静态方法的区别和联系说起。一、静态方法常驻内存,非静态方法只有使用的时候才分配内存?一般都认为是这样,并且怕静态方法占用过多内存而建议使用非静态方法,其实这个理解是错误的。为什么会这样,先从内存分配开始说起:托管堆的定义:对于32位的应用程序来说,应用程序完成进程初始化后,CLR将在进程的可用地址空间分配一块保留的地址空间,它是进程(每个进程可使用4GB)中可用地址空间上的一块内存区域,但并不对应任何物理内存,这块地址空间即是托管堆。托管堆有分为多个区域,其
阅读全文
摘要:如果想成为一个架构师,就必须走正确的路,否则离目标越来越远,正在辛苦工作的程序员们,你们有没有下面几种感觉?一、 我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊。二、 我发现我的水平总是跟不上技术的进步,有太多想学的东西要学,android 比较火,ios 也不错,云计算也是如火如荼……三、 我发现虽然每天在拼命地工作,除了不停的coding,Ctrl+c和Ctrl+V更熟练了,但编码水平并没有提高,还是一个普通程序员,但有人已经做到架构师了。四、 想跳槽换个工作,结果面试的考官都问了一些什么数据结构,什么垃圾回收,什么设计模式之
阅读全文
摘要:目前网站架构一般分成网页缓存层、负载均衡层、 WEB层和数据库层,我其实一般还会多加一层,即文件服务器层,这样我们在后面的讨论过程中,我们可以依次用这五层对网站架构来进行讨论;这里为了更具有 说服力,我将用三个并发较大的生产环境来说明下,一个是我现在维护的电子商务网站(并发最大峰值2900,日PV500万左右)、我目前维护的电子广告网 站(并发最大峰值1500,日PV150万左右)、以前维护的大型CDN门户广告网站(并发最大峰值5000,日PV5000万左右)。网页缓存层首先说下这个网页缓存层,比如CDN租赁(效果比公司自己部署Squid/Varnish要好,他们专业,价格低廉,比如快网/CC
阅读全文
摘要:一、InnoDB特点优点:1、支持事务2、行锁3、支持外键缺点:1、不支持全文索引二、MyIsaMBLOB和TEXT列可以被索引。可以把数据文件和索引文件放在不同目录,用DATA DIRECTORY和INDEX DIRECTORY选项CREATE TABLE以获得更高的速度mysql备份:1:mysqldump几个常用用例:1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql2.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导
阅读全文
摘要:1. 简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响。MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性能非常的差,仅仅是一个玩具数据库。因此在产品中使用MySQL数据库必须进行必要的优化。优化是一个复杂的任务,本文描述MySQL相关的数据库设计和查询优化,服务器端优化,存储引擎优化。2. 数据库设计和查询优化在MySQL Server性能调优中,首先要考虑的就是Database Schema设计,这一点是非常重要的。一个糟糕的Schema设计即使在性能调优的MySQL Server上运行,也会表...
阅读全文
摘要:1、先来看看多次删除插入操作后的表索引情况mysql> SHOW INDEX FROM `tbl_name`;+----------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part..
阅读全文
摘要:/usr文件系统 /usr 文件系统经常很大,因为所有程序安装在这里. /usr 里的所有文件一般来自Linux distribution;本地安装的程序和其他东西在/usr/local 下.这样可能在升级新版系统或新distribution时无须重新安装全部程序. /usr/X11R6 X Window系统的所有文件.为简化X的开发和安装,X的文件没有集成到系统中. X自己在/usr/X11R6 下类似/usr ./usr/X386 类似/usr/X11R6 ,但是给X11 Release 5的./usr/bin 几乎所有用户命令.有些命令在/bin 或/usr/local/bin 中...
阅读全文
摘要:索引使用经验:1. 一条 SQL 语句只能使用 1 个索引 (5.0-),MySQL 根据表的状态,选择一个它认为最好的索引用于优化查询2. 联合索引,只能按从左到右的顺序依次使用Using where; Using filesort当EXPLAIN中的extra中出现Useing filesort时说明语句性能不好,需要优化。Using filesort 是一种速度很慢的外部排序。即使order by 后的字段加了索引,也可能出现Using filesort,因为有可能索引定义不当,MySQL 没有用到索引例如:explain SELECT * FROM table_item WHERE u
阅读全文
摘要:语法:alter_specification: ADD [COLUMN] create_definition [FIRST | AFTER column_name ] or ADD INDEX [index_name] (index_col_name,...) or ADD PRIMARY KEY (index_col_name,...) or ADD UNIQUE [index_name] (index_col_name,...) or ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} or CHANGE [COLUMN
阅读全文
摘要:NoSQL数据库的分布式算法 http://blog.nosqlfan.com/html/4139.html一致性hash算法在memcache集群中的应用 http://alunblog.duapp.com/?p=14memcache的一致性hash算法使用 http://blog.csdn.net/kongqz/article/details/6695417
阅读全文
摘要:Linux下passwd和shadow文件内容详解一、/etc/passwd/etc/passwd 文件是一个纯文本文件,每行采用了相同的格式: name:password:uid:gid:comment:home:shell name 用户登录名 password 用户口令。此域中的口令是加密的,常用x表示。当用户登录系统时,系统对输入的口令采取相同的算法,与此域中的内容进行比较。如果此域为空,表明该用户登录时不需要口令。 uid 指定用户的 UID。用户登录进系统后,系统通过该值,而不是用户名来识别用户。 gid GID。如果系统要对相同的一群人赋予相同的权利,则使用该值。 comment
阅读全文
摘要:一不小心把本地的临时分支push到server上去了,想要删除。一开始用git branch -r -d origin/branch-name不成功,发现只是删除的本地对该远程分支的track,正确的方法应该是这样:git push origin :branch-name冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。
阅读全文
摘要:cron 是一个可以用来根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。 cron 假定系统持续运行。如果当某任务被调度时系统不在运行,该任务就不会被执行。 要使用 cron 服务,你必须安装了 vixie-cron RPM 软件包,而且必须在运行 crond 服务。要判定该软件包是否已安装,使用 rpm -q vixie-cron 命令。要判定该服务是否在运行,使用 /sbin/service crond status 命令。 37.1.1. 配置 cron 任务cron 的主配置文件是 /etc/crontab,它包括下面几行: SHELL=/bin/bash ...
阅读全文
摘要:PHP数据库长连接mysql_pconnect的细节:http://www.nowamagic.net/librarys/veda/detail/95
阅读全文
摘要:describe命令一、describe命令用于查看特定表的详细设计信息,例如为了查看guestbook表的设计信息,可用:describe guestbookdescribe ol_user userid二、可通过”show comnus”来查看数据库中表的列名,有两种使用方式:show columns form 表名 from 数据库名或者:show columns from 数据库名.表名三、用describe命令查询具体列的信息describe guestbook id就是查询guestbook中id字段的列信息{DESCRIBE | DESC} tbl_name [col_name
阅读全文
摘要:在PHP中类为什么要使用静态方法,有什么好处不需要实例化??可以提高运行效率??这是一个经常被时时提出来的问题,很多时候我们以为理解了、懂了,但深究一下,我们却发现并不懂。方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简单的回答两者定义的区别,静态方法不需要new就可以使用 实例化方法需要new了以后才可以使用。。。。我们真的理解了吗?从实际项目开发说起,这里有开发项目的三种方式:开发项目中把BLL和DAL分开,在BLL调用DAL的代码。一、在DAL中使用静态方法,不创建实例直接调用(大概有很多人都使用这种方式开发 )class DAL
阅读全文