Redis的代理(Twemproxy)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis的代理(Twemproxy)相关的知识,希望对你有一定的参考价值。

Twemproxy是Twitter开源的Redis代理,借助其可实现稳定的Redis分布式方案,相对于官方较新的Redis Cluster架构,容量伸缩较麻烦。



安装比较简单,注意可能会遇到autoconf版本低的问题。


安装依赖库

# yum install autoconf libtool -y


下载最新版本

https://github.com/twitter/twemproxy/releases


编译安装twemproxy

# tar zxf twemproxy-0.4.1.tar.gz

# cd twemproxy-0.4.1


遇到autoconf版本低的报错

# autoreconf -fvi

...

configure.ac:8: error: Autoconf version 2.64 or higher is required


下载较高版本的autoconf

http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz


编译安装autoconf,并覆盖低版本文件

# ./configure

# make

# make install


# cp /usr/local/bin/autoconf /usr/bin/

# cp /usr/local/bin/autoreconf /usr/bin/


重新安装

# autoreconf -fvi

# ./configure --prefix=/usr/local/twemproxy

# make

# make install



twemproxy的重要特性

1. Maintains persistent server connections.

2. Keeps connection count on the backend caching servers low.

3. Enables pipelining of requests and responses.

4. Supports multiple server pools simultaneously.

5. Observability via stats exposed on the stats monitoring port.

6. Supports multiple hashing modes including consistent hashing and distribution.



配置文件,其中端口6379和6389为2个Redis实例。

$ cat kp.conf 

kp:

  listen: 127.0.0.1:7379

  hash: fnv1a_64

  distribution: ketama

  timeout: 100

  auto_eject_hosts: true

  server_retry_timeout: 2000

  server_failure_limit: 2

  redis: true

  redis_auth: abcdefg

  servers:

   - 127.0.0.1:6379:1

   - 127.0.0.1:6389:1


启动twemproxy

$ nutcracker --daemonize --verbose=11 --output=nut.log --conf-file=kp.conf --stats-port=22222 --pid-file=nut.pid


登陆twemproxy

$ redis-cli -p 7379 -a abcdefg

127.0.0.1:7379> get hello

"redis"

127.0.0.1:7379> set twe proxy

OK

127.0.0.1:7379> dbsize

Error: Server closed the connection


获取twemproxy状态

$ curl --get http://127.0.0.1:22222

{"service":"nutcracker", "source":"51", "version":"0.4.1", "uptime":22766, 

...

}


若感兴趣可关注订阅号”数据库最佳实践”(DBBestPractice).

技术分享图片

以上是关于Redis的代理(Twemproxy)的主要内容,如果未能解决你的问题,请参考以下文章

redis代理集群(Twemproxy)

laravel项目利用twemproxy部署redis集群的完整步骤

Redis 高可用: twemproxy实现缓存服务器分片集群

[转]Twemproxy 介绍与使用

轻量级 Memcached缓存代理 twemproxy实践

Redis集群方案之Twemproxy+HAProxy+Keepalived+Sentinel+主从复制(待实践)