1. 程式人生 > >基於Twemproxy的Redis叢集方案部署

基於Twemproxy的Redis叢集方案部署

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 [email protected]: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分佈基本平均。實際測試資料以業務測試為準。

相關推薦

基於Twemproxy的Redis叢集方案部署

1、安裝redis。 2、在一臺機器上搭建多個redis例項 需要啟動多個Redis例項: 一臺Redis伺服器,分成多個節點,每個節點分配一個埠(6380,6381…),預設埠是6379。 每個節點對應一個Redis配置檔案,如: redis6380.conf、redi

基於centos7.2最小化環境, cdh manager 及 cdh 叢集部署過程常見問題整理

注:此篇文章主要面向對hadoop有一定了解的開發和運維人員,若是初次接觸hadoop叢集,具體安裝過程請更多參考Ambari的安裝部署教程:http://blog.csdn.net/balabalayi/article/details/64920537 CDH Manager的部署與安裝與Am

mysql高可用-基於docker容器下的pxc叢集方案

mysql單機效能測試 mysqlslap -h192.168.1.16 -uroot -p123456 -P3306 --concurrency=5000 --iterations=1 --auto-generate-sql --auto-generate-sql-loa

基於twemproxy的redis叢集方案實踐

Twemproxy又名nutcraker,是由Twtter 開源,是一種代理分片機制的中介軟體(類似於mycat),主要用於管理 Redis Memcached 叢集,可接受來自多個客戶端的請求,按照路由規則,轉發給後端cache節點,減少了客戶端與cache 伺服器直接連線的數量。 一、t

Linux 下Redis叢集安裝部署及使用詳解(線上和離線兩種安裝+相關錯誤解決方案)

一、應用場景介紹   本文主要是介紹Redis叢集在Linux環境下的安裝講解,其中主要包括在聯網的Linux環境和離線的Linux環境下是如何安裝的。因為大多數時候,公司的生產環境是在內網環境下,無外網,伺服器處於離線狀態(最近公司要上線專案,就是無外網環境的Linux,被離線安裝坑慘了,走了很多彎路,說多

基於Centos6的tomcat部署

linux tomcat部署基於Centos6的tomcat部署說明:在安裝tomcat之前必須先安裝JDK,JDK的全稱是java development kit,是sun公司免費提供的java語言的軟件開發工具包,其中包含java虛擬機(JVM),編寫好的java源程序經過編譯可形成java字節碼,只

基於centos7.3安裝部署jewel版本ceph集群實戰演練

集群 ceph 一、環境準備安裝centos7.3虛擬機三臺由於官網源與網盤下載速度都非常的慢,所以給大家提供了國內的搜狐鏡像源:http://mirrors.sohu.com/centos/7.3.1611/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso在三臺裝好的

apache分別基於三種方案實現tomcat的代理、負載均衡及會話綁定

tomcat apacheapache分別基於mod_proxy_ajp, mod_proxy_http, mod_jk三種方案實現代理、負載均衡、會話綁定及Tomcat session cluster1、nginx, haproxy, apache(mod_proxy_ajp, mod_proxy_http

MYSQL雙主高可用方案部署實例

tro dmi admin route pts service firewall oop sql king01與king02互為master-slave[root@king01 ~]# mysql -uroot -pabcd.1234mysql> show slave

[HCNA Cloud]雲計算解決方案部署

cloud部署流程:1、解決方案設計 1)架構設計 2)組件設計 3)網絡設計 4)存儲設計2、配置硬件設備 1)配置網絡設備 2)配置存儲設備 3)配置服務器3、部署軟件系統 1)安裝FusionCompute 2)安裝FusionManager 3)安裝FusionAccess4、配置

基於linux7的k8s部署(一)

基於linux7的k8s部署 k8s Kubernetes Kubernetes集群 基於linux7的k8s部署(一) 環境準備 #系統環境 lsb_release -a Distributor ID: CentOS Description: CentOS Linux release

K8S入坑指南 - 分散式叢集方案探討

前言 隨著團隊應用產品的不斷增多,伺服器運營人員的工作量做到,而且有許多重複工作和不必要的勞動力。 並且,為了滿足前後端,運維工作的完全分離,我們需要對運維工作進行很好的調整。 經過討論,一方面,運維工作文件化,另一方面加速推進自動化部署、監控、維護系統的建設與完善。 經過調研

Linux叢集儲存——day5——Ceph叢集部署Linux系統、Ceph檔案系統、Ceph的物件儲存系統

Ceph叢集儲存的應用    紅帽的Linux已經把Ceph整合到核心中了,可以直接把作業系統裝在分佈儲存檔案中。     將虛擬機器的Linux作業系統安裝在Ceph叢集中:     0. 如同Ceph叢集進行初期環境部署。

solr叢集安裝部署

一、安裝部署zookeeper叢集 zookeeper叢集 二、solr叢集部署 叢集配置 IP | 節點名稱 | 環境 --- | --- | --- 192.168.137.128 | 192.168.137.128 | jdk1.8, zookeeper3.4.13, solr7.5.0 192.

Redis-3.2.8的叢集安裝部署

一.下載並安裝基礎元件 yum -y install gcc automake autoconf libtool make jemalloc 二.下載redis並解壓安裝 wget http://download.redis.io/relea

spark-2.2.0 叢集安裝部署以及hadoop叢集部署

Spark在生產環境中,主要部署在安裝Linux系統的叢集中。在linux系統中安裝Spark需要預先安裝JDK、Scala等所需要的依賴。 由於Spark是計算框架,所以需要預先在叢集內有搭建好儲存資料的持久化層,如HDFS、Hive、Cassandra等,最後可以通過啟動指令碼執行應用。

Docker Swarm叢集部署Traefik負載均衡器

   一、建立單節點的Docker Swarm叢集 docker swarm init   二、在Swarm叢集中建立一個網路 docker network create --driver=overlay traefik --attachable  

Spark2.2.0叢集搭建部署之【SPARK叢集篇】

軟體準備資訊,詳見Spark2.2.0叢集搭建部署之【軟體準備篇】 基礎配置資訊,詳見Spark2.2.0叢集搭建部署之【基礎配置篇】 SSH無密訪問,詳見park2.2.0叢集搭建部署之【無密訪問篇】 HADOOP叢集,詳見Spark2.2.0叢集搭建部署之【HADOOP叢集篇】

Spark2.2.0叢集搭建部署之【HADOOP叢集篇】

軟體準備資訊,詳見Spark2.2.0叢集搭建部署之【軟體準備篇】 基礎配置資訊,詳見Spark2.2.0叢集搭建部署之【基礎配置篇】 SSH無密訪問,詳見park2.2.0叢集搭建部署之【無密訪問篇】 將hadoop-2.7.7.tar.gz 進行解壓 tar -zxvf 

Spark2.2.0叢集搭建部署之【無密訪問篇】

軟體準備資訊,詳見Spark2.2.0叢集搭建部署之【軟體準備篇】 基礎配置資訊,詳見Spark2.2.0叢集搭建部署之【基礎配置篇】 通過SSH無密訪問來達到叢集中機器相互訪問的目的。首先固定機器的ip地址,避免每次重啟機器ip改變的問題。 通過ifconfig命令檢視當前ip地址,若