September 27, 2011
Redis系统性介绍
"虽然Redis已经很火了,相信还是有很多同学对Redis只是有所听闻或者了解并不全面,下面是一个比较系统的Redis介绍,对Redis的特性及各种数据类型及操作进行了介绍。是一个很不错的Redis入门教程。\n1.介绍 1.1 Redis是什么 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis提供了一些丰富的数据结构,包括 lists, sets, ordered sets 以及 hashes ,当然还有和Memcached一样的 strings结构.Redis当然还包括了对这些数据结构的丰富操作。\n1.2 Redis的优点 性能极高 – Redis能支持超过 100K+ 每秒的读写频率。 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。 丰富的特性 – Redis …"
September 26, 2011
show slave status\G中的Read_Master_Log_Pos和Relay_Log_Pos的(大小)关系
"Just to clarify, there are three sets of file/position coordinates in SHOW SLAVE STATUS:\nThe position, ON THE MASTER, from which the I/O thread is reading: Master_Log_File/Read_Master_Log_Pos. —–相对于主库,从库读取主库的二进制日志的位置,是IO线程\nThe position, IN THE RELAY LOGS, at which the SQL thread is executing: Relay_Log_File/Relay_Log_Pos —-相对于从库,是从库的sql线程执行到的位置\nThe position, ON THE MASTER, at which the SQL thread is executing: Relay_Master_Log_File/Exec_Master_Log_Pos —-相对于主库,是从库的sql线程执行到的位置\nNumbers 2) and 3) …"
September 26, 2011
如何在windows下用bat脚本定时备份mysql
"作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究。\n并不是所有MySQL都运行在Linux下,windows下也需要做例行备份,下面是用bat脚本做自动化备份的例子,大家可以参考下。\nrem rem C:\\Program Files\\WinRAR 需要放到 path 下,才能调用rar cli工具 rem rem 跳转到工作目录下 f: cd f:\\DBBAK rem 设置变量:备份文件名 SET BAK_FILE=MY_DBBAK_%date:~0,-4%.sql rem 设置变量:日志文件名 SET LOG_FILE=MY_DBBAK.log rem 记录日志 echo \u0026#34;%date%\u0026#34; \u0026gt;\u0026gt; %LOG_FILE% rem 开始做备份 mysqldump --default-character-set=utf8 -hlocalhost -uroot -R --triggers --single-transaction -B mydb \u0026gt; %BAK_FILE% rem …"
September 26, 2011
mysql主从复制原理
"Replication 线程 Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql instance(我们称之 Slave)。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Master 端。\n要实现 MySQL 的 Replication ,首先必须打开 Master 端的Binary Log(mysql-bin.xxxxxx)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全 顺序的执行日志中所记录的各种操作。打开 MySQL 的 Binary Log 可以通过在启动 MySQL Server 的过程中使用 “—log-bin” 参数选项,或者在 my.cnf 配置文件中的 mysqld 参数组([mysqld]标识后的参数部分)增加 “log-bin” 参数项。\nMySQL 复制的基本过程如下:\nSlave 上面的IO线程连 …"
September 15, 2011
[git] Git 高级:Git Reset, Checkout, Diff, Stash
"Git Reset 有时候,你可能想要撤销 Git 操作。通常,git reset 就是你需要的命令。但是,使用 git reset 可能会非常复杂,取决于你的撤销操作。如果本文没有提到你需要的,查看 git reset 官方文档。\n假设,你正在进行一个项目,想要取消所有的改变,返回到最近一次的提交,命令如下:\n$ git reset --hard HEAD –hard flag 将指定提交(上例中,HEAD)中的任意内容放入工作目录和缓存区内。因为 HEAD 是最近一次提交,所以我们没有做任何改变。运行 git status,会看到提示没有需要提交的。\n还有其它一些 git reset 使用的 flag。假设你想要回滚你的项目到多个提交之前,但是想要保存没有提交的改变,尝试下面的:\n$ git reset --soft 3ce072c72d948abfa 当然,替换为你自己需要的 hash。–soft flag 将保存你的改变在工作目录和缓存区。换句话来说,最新的提交将会是你选择的提交。\n还有很多情况,你可以使用 git reset。如果你认为需要这个名利概念的功能,查看文档。 …"
September 14, 2011
Nginx作为反向代理时传递客户端IP
"因为架构的需要采用多级 Nginx 反向代理,但是后端的程序获取到的客户端 IP 都是前端 Nginx 的 IP,问题的根源在于后端的 Nginx 在 HTTP Header 中取客户端 IP 时没有取对正确的值。同样适用于前端是 Squid 或者其他反向代理的情况。(通用的解决方案是直接取服务器的变量 HTTP_X_FORWARDED_FOR 的值即可取出客户端的真实ip地址)\n首先前端的 Nginx 要做转发客户端 IP 的配置:\nlocation / {\nproxy_pass http://localhost:8000;# Forward the user’s IP address to Rails\nproxy_set_header X-Real-IP $remote_addr;\nneeded for HTTPS proxy_set_header X_FORWARDED_PROTO https; proxy_set_header X-Forwarded-For $remote_addr;\nproxy_set_header X-Forwarded-For …"
September 13, 2011
(linux)nfs配置教程[原创]
"转载请注明文本来源:\n网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。\n操作环境为:Centos6.0\n一、NFS服务端设置(192.168.0.100) 1.安装并启用相应的服务,将防火墙关闭\n#yum -y install nfs* portmap #启动端口映射 #service portmap start #启动NFS 服务,此时NFS 会激活守护进程,然后就开始监听 Client 端的请求 #service nfs start #关闭防火墙 #service iptables stop 在这里可以对nfs进行一下验证\n#mount -t nfs 192.168.0.100:/data/nfs /mnt/nfs #本地验证 #touch /mnt/nfs/server.txt #ls /mnt/nfs #ls /data/nfs 如果/mnt/nfs和/data/nfs两个目录里的内容一样的话,则说 …"
September 12, 2011
php-fpm日志里出现[WARNING] fpm_children_bury()信息的解决办法
"最近接手nginx+php的WEB环境维护,发现PHP-cgiCPU很好,也造成负载很高,于是在网上找了些资料,并且针对自己的错误,将问题收集再次,并且网上还给了解决方案,所以放在这里留作以后查询\nan 11 08:54:01.164292 [NOTICE] fpm_children_make(), line 352: child 10088 (pool default) started\nJan 11 08:54:01.164325 [WARNING] fpm_children_bury(), line 215: child 7985 (pool default) exited on signal 15 SIGTERM after 63.778601 seconds from start\nJan 11 08:54:01.165485 [NOTICE] fpm_children_make(), line 352: child 10089 (pool default) started\nJan 11 08:54:01.165514 [WARNING] fpm_children_bury(), …"
September 9, 2011
kickstart 语法详解
"kickstart 语法\n接下来探讨ks.cfg 的相关参数,这些参数笔者将依上述ks,cfg 出现的先后顺序来讨论,有些参数并不是一定要设置。完整的kickstart 参数意义可参考下列网址。\nhttp://www.redhat.com/docs/manuals/enterprise/RHEL-3-Manual/sysadmin-guide/s1-kickstart2-options.html\nks.cfg 文件由三个部份皆组成:\ncommand 区段—此部份包含了必要安装选项\npackages 区段—列出欲安装套件\n%pre and %post 区段\ncommand 区段 ■lang(必要):安装时所使用的语言 例如:安装过程中选用中文语言,lang zh_TW.Big5 ■langsupport (必要):指定系统使用的语言。假如你安装一至多国语系,你必需使用默认选项去指定默认语言。语法为: 例如:langsupport –default en_US.UTF-8 zh_TW.Big5 en_US.UTF-8 ■键盘(必要):设置系统键盘的种类。语法为:keyboard us ■鼠 …"
September 9, 2011
redhat下使用dvd作为yum源
"使用rpm包的最大问题就是安装依赖问题,yum就是为了解决这个问题而出现的,但是Redhat AS的更新是要收费的,所以在解决这个收费的问题之前你只能暂时用安装盘作为yum源,实际上,这也是可以做到的:\n1、mount安装盘到/mnt/cdrom\n#mkdir /mnt/cdrom #mount -t auto /dev/cdrom /mnt/cdrom\n2、创建/etc/yum.rep.d/rhel.repo,文件内容如下:\n[base] name=Red Hat Enterprise Linux $releasever – $basearch baseurl=file:///mnt/cdrom/ enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release"