下载后可任意编辑基于 Twemproxy 的群集部署方案概述本文描述的 twemproxy 基于 nutcracker-0.2.4 版本。twemproxy 是 memcached 和 redis 的协议层面的代理,其提供的 features 如下:注:twemproxy 不会增加 redis 的性能指标数据,据业界测算,使用 twemproxy 相比直接使用redis 会带来~10%的性能下降。但是单个 redis 进程的内存管理能力有限。据测算,单个 redis 进程内存超过 20G 之后,效率会急剧下降。目前,我们给出的建议值是单个 redis 最好配置在 8G 以内。8G 以上的 redis缓存需求,通过 twemproxy 来提供支持。下载后可任意编辑本文将描述 twemproxy+redis 的下载、安装、部署和配置过程。其中,其 distribution 是本文的重点之一。部署编译 twemproxy基本过程如下:从 http://code.google.com/p/twemproxy/downloads/list 下载对应版本的代码然后解压缩、配置、编译、安装twemproxy 的命令行参数下载后可任意编辑twemproxy 的配置详解twemproxy 的配置信息填写在 nutcracker.yml 之中,默认的查找位置是在 conf 目录下,也可以通过-c 参数指定。nutcracker.yml 的例子:一个 twemproxy 可以被配置成多个角色。详细的配置信息如下:listentwemproxy 监听的端口。可以以 ip:port 或 name:port 的形式来书写。下载后可任意编辑hash可以选择的 key 值的 hash 算法:> one_at_a_time> md5> crc16> crc32 (crc32 implementation compatible with libmemcached)> crc32a (correct crc32 implementation as per the spec)> fnv1_64> fnv1a_64> fnv1_32> fnv1a_32> hsieh> murmur> jenkins假如没选择,默认是 fnv1a_64。hash_taghash_tag 允许根据 key 的一个部分来计算 key 的 hash 值。hash_tag 由两个字符组成,一个是 hash_tag 的开始,另外一个是 hash_tag 的结束,在 hash_tag 的开始和结束之间,是将用于计算 key 的 hash 值的部分,计算的结果会用于选择服务器。例 如 : 假 如 hash_tag 被 定 义 为 ” {}” , 那 么 key 值 为 "user:{user1}:ids" 和 "user:{user1}:tweets" 的 hash 值 都 是 基 于 ” user1” , 最 终 会 被 映 射 到 相 同 的 服 务 器 。而"user:user1:ids"将会使用整个 key 来计算 hash,可能会被映射到不同的服务器。distribution...