MySQL 主从复制添加slave

在已有的MySQL主从复制下添加slave的方法:

方法一:

1、在已有的slave上,执行stop slave io_thread;,等待Slave_open_temp_tables为0时,执行stop slave sql_thread

2、然后执行flush tables with read lock;flush logs

3、拷贝整个datadir(bin-log、relay-log等信息也要在这里面)内容到new-slave的datadir下;

4、在new-slave上启动mysql后执行start slave;即可。


Read more...

2015-08-08 MySQL复制

nginx rewrite

参考ngx_http_rewrite_module,对各种rewrite情况进行了实验,总结一下。

rewrite、location、if的context如下:

  • rewrite:server、location、if
  • location:server、location
  • if:server、location

location匹配规则:

  • =:完整的字符串匹配
  • ~:大小写敏感的正则匹配
  • ~*:大小写不敏感的正则匹配
  • ^~:如果最长的前缀匹配有这个修饰符,那么将不再检查正则表达式匹配

location匹配顺序:

  1. 检查前缀匹配,记录下最长前缀匹配,如果有^~修饰符,则停止搜索;
  2. 检查正则匹配,第一个匹配到正则后停止搜索,如果没有任何正则匹配,那么将使用步骤1中记录的最长前缀。

Read more...

2015-07-26 nginx配置

一种基于哨兵的缓存访问策略

学习自一种基于“哨兵”的分布式缓存设计

通常的缓存访问如下,箭头表示访问量,且为同一时刻访问。

cache access


Read more...

2015-07-02

Ansible搭建LNMP双机高可用

最近学习了下Ansible,做了这个实验实践下。

LNMP双机高可用架构图:

LNMP HA


Read more...

2015-06-14 Ansible

Laravel service providers/service container/facades

控制反转(IOC)


为了实现应用中组件的配置与使用分离。

例如,我们有一个应用程序叫Text Editor,它有一个组件叫Spell Checking,那么我们的代码可能会像如下:

1
2
3
4
5
6
7
8
9
<?php
class TextEditor
{
    private SpellChecker checker;
    public __construct() {
        checker = new SpellChecker();
    }
}
?>

这样的话,TextEditor与SpellChecker就耦合在一起了,TextEditor->checker的实例化完全被TextEditor控制。


Read more...

2015-06-07

Zero Copy

学习自Zero Copy I: User-Mode Perspective

什么是zero copy


让我们了解下一个作为通过存储在文件中的数据提供服务的服务器守护进程在传输给客户端时,守护进程的简单处理过程:

1
2
read(file, tmp_buf, len);
write(socket, tmp_buf, len);

在这两个系统调用发生的复制:

Copying in Two Sample System Calls


Read more...

2015-05-29 Linux系统编程

使用Dockers管理个人开发环境

当我们新安装Linux系统或者登陆了一个非自己环境的Linux系统时,通常都得做许多繁杂而又重复的工作,安装各种软件、搭建开发环境等,为了解决这个问题,我将使用Docker来管理自己的开发环境。

简单版的在线docker介绍:Docker —— 从入门到实践

基础镜像


自己搭建了一个CentOS 7的基础开发镜像centos-dev:base-v1.2,修改软件源为163源,装了各种常用软件以及个人配置:git、vim、zsh等等。

docker images


Read more...

2015-05-04