Http性能压测工具 | wrk

简单的 http 性能测试工具,记录一下使用方法。

安装

MacOS

brew install wrk

Ubuntu/Debian

sudo apt-get install build-essential libssl-dev git -y
git clone https://github.com/wg/wrk.git wrk
cd wrk
sudo make
# move the executable to somewhere in your PATH, ex:
sudo cp wrk /usr/local/bin

CentOS / RedHat / Fedora

sudo yum groupinstall 'Development Tools'
sudo yum install openssl-devel
sudo yum install git
git clone https://github.com/wg/wrk.git wrk
cd wrk
make
# move the executable to somewhere in your PATH
sudo cp wrk /somewhere/in/your/PATH
[阅读全文]

Redis持久化介绍

简单介绍一下Redis两种持久化策略RDB和AOF的区别。

一些简单的配置,比如端口号port, 日志位置logfile等基本配置可自行配置。

快照RDB持久化配置:

# Save the DB on disk:
#  设置sedis进行数据库镜像的频率。
#  900秒(15分钟)内至少1个key值改变(则进行数据库保存--持久化)。
#  300秒(5分钟)内至少10个key值改变(则进行数据库保存--持久化)。
#  60秒(1分钟)内至少10000个key值改变(则进行数据库保存--持久化)。
save 900 1
save 300 10
save 60 10000

stop-writes-on-bgsave-error yes
# 在进行镜像备份时,是否进行压缩。yes:压缩,但是需要一些cpu的消耗。no:不压缩,需要更多的磁盘空间。
rdbcompression yes
# 一个CRC64的校验就被放在了文件末尾,当存储或者加载rbd文件的时候会有一个10%左右的性能下降,为了达到性能的最大化,你可以关掉这个配置项。
rdbchecksum yes
# 快照的文件名
dbfilename dump.rdb
# 存放快照的目录
dir /var/lib/redis
[阅读全文]

iTerm2保持ssh连接不断开

iTerm2连接ssh一个蛋疼的问题

在mbp笔记本上安装了iTerm2来替换自带的终端,简洁易用,让人一下子就喜欢上,但是使用iTerm2进行ssh连接时,空闲一段时间,连接就会断掉…… 下面就来介绍如何解决iTerm2短连的问题。

[阅读全文]

再见上海

当我写下这篇文章时,基本上进入离开上海的倒计时了。

13年4月份来到上海,转眼间就过去4年了。还记得第一次来到上海,感觉从乡村来到大城市,一切都是那么新鲜,第一次看到如此宽敞的马路,第一次做地铁,第一次看到如此多的高楼大厦,第一次看到如此多的人,感觉生活当如是。慢慢地自己的视野大了,也就习惯了。每天坐着公交、地铁,人如鱼潮,大家急匆匆地来往在上班回家的路上。这应该是大部分外来人的生活写照吧。

其实打心底里还是喜欢上海的,学习就业机会多,教育医疗资源多。但是来到这里,能够认识大家,其中有大学同学,公司交好的同事,这才是一生中最值得怀念的回忆。期间陆陆续续很多人离开,难免有些唏嘘和伤感。

决定去成都,离开上海有伤感,去成都也会有一些陌生感,需要一段时间去适应,但是更多的是期待。

就这样吧,最后,以后去成都玩耍的可以找我。

设计模式之动态代理

代理实现可以分为静态代理和动态代理, 下面使用jdk和cglib来分别说明。

静态代理

具体实现:

public interface Subject {
    void request();
}

class RealSubject implements Subject {
    public void request(){
        System.out.println("Call RealSubject");
    }
}

class Proxy implements Subject {
    private Subject subject;

    public Proxy(Subject subject) {
        this.subject = subject;
    }

    public void request() {
        System.out.println("begin");
        subject.request();
        System.out.println("end");
    }
}

public class ProxyTest {

    public static void main(String args[]) {
        RealSubject subject = new RealSubject();
        Proxy p = new Proxy(subject);
        p.request();
    }
}
[阅读全文]

设计模式之单例模式

单例模式 (Singleton) 也叫单态模式,是设计模式中最为简单的一种模式。

第一种(懒汉, 线程不安全)

public class Singleton {

    private static Singleton instance;

    private Singleton() {
    }

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

这种写法 lazy loading 很明显, 但是致命的是在多线程不能正常工作。

[阅读全文]

Git常用指令整理

整理的一些常用的Git指令

创建仓库

echo "# comments" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:your_username/your_project.git
git push -u origin master

若仓库存在直接push 

git remote add origin git@github.com:your_username/your_project.git
git push -u origin master
[阅读全文]

Git 生成多个 SSH Key

当有多个git账号的时候,比如一个github,用于自己进行一些开发活动,再来一个gitlab,一般是公司内部的git。这两者你的邮箱如果不同的话,就会涉及到一个问题,生成第二个git的key的时候会覆盖第一个的key,导致必然有一个用不了。

[阅读全文]

博客终于正式开张啦~

万事开头难,第一次总是有更多的纪念意义。

经过几番折腾,花了一个周末的时间,在github pages上终于把自己的个人博客搭建好了。

本来9月13号我购买了一年的阿里云服务器,用Java搭建好了,结果因为购买服务器是国内的,备案一直没有弄下来,购买的域名也无法使用,也不能退,花的RMB就这样打水漂啦啦啦~

最近接触的东西挺多的,加上之前一直挺喜欢写点东西的,使用过各种第三方博客,但是很多没有坚持下来,不够纯粹,达不到自己想要的,所以才下定决心把个人博客弄起来,希望自己能够坚持下去,加油!