Twemproxy小试
由于用redis太多,而在程序中实现pre-hashing的方法导致扩展比较麻烦,每次要新的redis进来都需要重新改下代码。于是就测试了一下twitter开源出来的twemproxy。 项目地址为:https://github.com/twitter/twemproxy 安装方式很简单,配置文件也十分简单易懂。就是hash函数和distribution 这2个部分不知道怎么选。 distribution的hash算法用的是一致性hash的ketama算法。但是前面的hash函数部分不是特别明白具体的,因为一开始选用的fnv1a_64哈希算法,导致我在2个redis后端的时候100个set居然都在一台服务器上,有点不是特别靠谱,所以选用了murmur哈希算法。具体的算法如下 哈希算法:
- one_at_a_time
- md5
- crc16
- crc32
- fnv1_64
- fnv1a_64
- fnv1_32
- fnv1a_32
- hsieh
- murmur
- jenkins
distribution 算法:
- ketama
- modula
- random
具体的配置文件如下
1 | redistest1: |
总共做了如下测试,只是使用了ruby的redis gem进行简单的set操作。虚拟机配置也不高,仅作为参考使用。 仅做了单进程,10进程,100进程的测试。 下面这个是使用gnuplot画的简单的图
1 | set xlabel 'concurrent'; |