基于Twemproxy的Redis集群方案部署

本文详细介绍了如何使用Twemproxy搭建Redis集群,包括安装Redis、配置多个Redis实例、启动实例、安装和配置Twemproxy、启动服务以及性能测试。测试结果显示,通过Twemproxy的性能相较于直接访问Redis有一定程度下降,但键值分布均匀。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1、安装redis。

2、在一台机器上搭建多个redis实例

需要启动多个Redis实例:

一台Redis服务器,分成多个节点,每个节点分配一个端口(6380,6381…),默认端口是6379。

每个节点对应一个Redis配置文件,如: redis6380.conf、redis6381.conf

#cp redis.confredis6380.conf

#vi redis6380.conf

pidfile : pidfile/var/run/redis/redis_6380.pid

port 6380

logfile : logfile/var/log/redis/redis_6380.log

rdbfile : dbfilenamedump_6380.rdb

 

(其他配置文件类似修改)

启动多个redis实例:

#redis-server /usr/local/redis/redis6380.conf

#redis-server /usr/local/redis/redis6381.conf

3、启动上一步配置的实例。

4、安装twemproxy 。

$ git clone git@github.com:twitter/twemproxy.git

$ cd twemproxy

$ autoreconf -fvi

$ ./configure --enable-debug=full

$ make

$ src/nutcracker -h

5、添加位置文件:/usr/local/twemproxy/conf/nutcracker.yml

beta:

  listen: 127.0.0.1:22122

  hash: fnv1a_64

  hash_tag: "{}"

  distribution: ketama

  auto_eject_hosts: false

  timeout: 400

  redis: true

  servers:

   - 127.0.0.1:6379:1 server1

   - 127.0.0.1:6380:1 server2

   - 127.0.0.1:6381:1 server3

6、启动twemproxy服务。

nutcracker -t 测试配置文件

nutcracker -d -c /usr/local/twemproxy/conf/nutcracker.yml -p /usr/local/twemproxy/run/redisproxy.pid -o /usr/local/twemproxy/run/redisproxy.log

7、测试twemproxy:

src/redis-cli -p 22122

127.0.0.1:22122> get aaa

(nil)

127.0.0.1:22122> set aaa 888

OK

127.0.0.1:22122> get aaa

"888"

测试ok。


7、性能测试

这里使用redis自带的redis-benchmark进行简单的性能测试,测试结果如下:


Set测试:

通过twemproxy测试:

src/redis-benchmark  -h  127.0.0.1 -p 22122 -c 100 -t set -d 100 -l -q

SET: 42808.22 requests per second

直接对后端redis测试:

src/redis-benchmark  -h  127.0.0.1 -p 6379 -c 100 -t set -d 100 -l -q

SET: 62578.22 requests per second


Get测试:

通过twemproxy测试:

src/redis-benchmark  -h  127.0.0.1 -p 22122 -c 100 -t get -d 100 -l -q

GET: 39169.61 requests per second

直接对后端redis测试:

src/redis-benchmark  -h  127.0.0.1 -p 6379 -c 100 -t get -d 100 -l -q

GET: 57736.72 requests per second

查看键值分布:

redis-cli info|grep db0

db0:keys=50141,expires=0,avg_ttl=0


redis-cli info|grep db0

db0:keys=50868,expires=0,avg_ttl=0


测试结果:以基本的set get命令通过twemproxy性能下降有点严重,据官网说明性能下降20%左右,具体原因还在分析;通过twemproxy分布基本平均。实际测试数据以业务测试为准。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值