`

基于twemproxy的redis分布式应用

阅读更多
根据以往的测试结论,单个redis的实例的内存总量最好控制在8G以内(最大不能超过20G),而实际上应用对redis的内存的需求可能会远远大于8G,因此需要一个保持redis server性能不下降,但可以有效扩充redis server的容量的方案。


twemproxy是一个恰当的选择。


简介
twemproxy,也叫nutcraker。是一个twtter开源的一个redis和memcache代理服务器。

特点
• 支持失败节点自动删除
• 支持设置HashTag
• 减少与redis的直接连接数
• 自动分片到后端多个redis实例上
• 避免单点问题
• 可以平行部署多个代理层.client自动选择可用的一个
• 支持redis pipelining request
• 支持状态监控
• 高吞吐量

部署

参考网站:https://github.com/twitter/twemproxy

核心脚本:

git clone git://github.com/twitter/twemproxy.git
autoreconf -fvi
./configure --prefix=/usr/local --enable-debug=log
make && make install


帮助文档:

Usage: nutcracker [-?hVdDt] [-v verbosity level] [-o output file]
                  [-c conf file] [-s stats port] [-a stats addr]
                  [-i stats interval] [-p pid file] [-m mbuf size]

Options:
  -h, --help             : this help
  -V, --version          : show version and exit
  -t, --test-conf        : test configuration for syntax errors and exit
  -d, --daemonize        : run as a daemon
  -D, --describe-stats   : print stats description and exit
  -v, --verbosity=N      : set logging level (default: 5, min: 0, max: 11)
  -o, --output=S         : set logging file (default: stderr)
  -c, --conf-file=S      : set configuration file (default: conf/nutcracker.yml)
  -s, --stats-port=N     : set stats monitoring port (default: 22222)
  -a, --stats-addr=S     : set stats monitoring ip (default: 0.0.0.0)
  -i, --stats-interval=N : set stats aggregation interval in msec (default: 30000 msec)
  -p, --pid-file=S       : set pid file (default: off)
  -m, --mbuf-size=N      : set size of mbuf chunk in bytes (default: 16384 bytes)


启动脚本:

./bin/nutcracker -c /usr/local/twemproxy/conf/nutcracker_test.yml -s 22222 -d -o /usr/local/twemproxy/logs/nutcracker.log


依赖包
执行过程中可能遇到依赖包不存在或者版本过低的情况,主要有m4, autoconf, automake, libtool。手动安装过程如下:

安装m4

wget http://mirrors.kernel.org/gnu/m4/m4-1.4.17.tar.gz 
tar -xzvf m4-1.4.17.tar.gz 
cd m4-1.4.17 
./configure --prefix=/usr/local
make && make install


安装autoconf

wget http://mirrors.kernel.org/gnu/autoconf/autoconf-2.69.tar.gz 
tar -xzvf autoconf-2.69.tar.gz 
cd autoconf-2.69 
./configure --prefix=/usr/local
make && make install


安装automake

wget http://mirrors.kernel.org/gnu/automake/automake-1.14.tar.gz
tar xzvf automake-1.14.tar.gz 
cd automake-1.14 
./configure --prefix=/usr/local
make && make install


安装libtool

wget http://mirrors.kernel.org/gnu/libtool/libtool-2.4.tar.gz 
tar xzvf libtool-2.4.tar.gz 
cd libtool-2.4 
./configure --prefix=/usr/local
make && make install

分享到:
评论

相关推荐

    基于redis的分布式缓存系统架构分析_张威.pdf

    **基于Twemproxy的代理设计** 1. **写入端设计**:采用一级Twemproxy架构,一个Twemproxy实例管理多个Redis实例,写入数据通过一致性Hash算法(如fnv1a-64和ketama)分片到不同的Redis节点,确保数据的均匀分布。 ...

    第三章 Redis/SSDB+Twemproxy安装与使用

    综上所述,Redis、SSDB和Twemproxy的组合,能构建一个高可用、高并发的分布式键值存储系统。通过合理配置和优化,可以满足各种复杂场景的需求,确保数据的高效存储和访问。在实际项目中,根据业务特性和规模,选择...

    最全50道Redis高频面试题.pdf

    Redis是一个开源的、使用ANSI C编写的key-value类型内存数据库,它...面试官通常会询问Redis的工作原理、数据类型、持久化机制、内存管理、事务机制以及集群方案等,以便考察面试者对Redis的理解程度和实际应用能力。

    Java思维导图xmind文件+导出图片

    基于redis实现分布式实战 图解Redis中的AOF和RDB持久化策略的原理 redis读写分离架构实践 redis哨兵架构及数据丢失问题分析 redis Cluster数据分布算法之Hash slot redis使用常见问题及性能优化思路 redis高...

    分布式缓存 Redis + Memcached 经典面试题!.pdf

    【分布式缓存Redis + Memcached】是现代互联网应用中常用的技术组合,用于高效地存储和检索数据,以提高系统的响应速度和并发处理能力。这里我们将深入探讨这两个分布式缓存系统的特点,以及它们在面试中经常遇到的...

    redis -3.0.501 -windows x64

    虽然Redis 3.0.501不支持官方的集群模式,但可以通过社区开发的工具如Twemproxy或Redis Sentinel实现分布式部署。在更高版本的Redis中,原生集群功能已经加入,能提供更强大的扩展性和高可用性。 通过了解并熟练...

    5_redis.docx

    - **Codis**:这是一个基于Redis的分布式数据库系统,旨在解决大规模数据访问的问题,适合于需要水平扩展的应用场景。 #### 主从同步过程 主从同步机制确保了数据的一致性和高可用性。其核心流程如下: 1. **初始...

    蚂蚁中间件团队面试题:Netty+Redis+Kafka+MongoDB+分布式

    ### 分布式缓存Redis与Memcached对比 #### Redis的优势 1. **数据类型丰富**:Memcached所有的值均为简单的字符串,而Redis则支持多种数据类型,如字符串(Strings)、列表(Lists)、集合(Sets)、有序集合(Sorted ...

    Redis的改造与实践

    为了应对这些挑战,Nice团队基于Redis进行了深度定制和改造,构建了一个全新的分布式平台。该平台的核心组件包括Metaserver、Redis Server、Proxy以及一系列自定义的数据结构如XSet等。 ##### 1. Metaserver介绍 -...

    Codis分布式Redis解决方案-其他

    Codis是一个分布式Redis解决方案,对于上层的应用来说,连接到CodisProxy和连接原生的RedisServer没有明显的区别(不支持的命令列表),上层应用可以像使用单机的Redis一样使用,Codis底层会处理请求的转发,不停机的...

    Redis详细使用说明书

    Redis还支持主从复制、高可用和分布式集群等功能,使其在处理大规模数据时依然保持高性能。 在安装方面,Redis可在Windows和Linux系统下运行。对于Windows用户,需要做适当的准备工作后下载安装包,而Linux用户则需...

    Redis面试专题1

    Redis 集群模式则采用分片策略,常见的有客户端分片、基于代理的分片(如 Twemproxy 和 Codis)以及 Redis-Cluster 自身的分片方案。Redis-Cluster 使用槽的概念,将数据分布到多个节点,每个节点负责一部分槽,通过...

    Redis 集群解决方案 Codis.zip

    Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的...

    Redis 50 道面试题及答案.docx

    Redis 是一个开源的、基于内存的数据存储系统,它支持多种数据结构,如 String、List、Set、Sorted Set、Hashes 等。Redis 的主要特点是高性能、支持多种数据结构、可以持久化数据、可以设置过期时间等。 Redis 的...

    Win版 Redis-3.2.1.zip

    虽然3.2.1版本不包含完整的Redis Cluster功能,但你可以通过其他方式在Windows上实现分布式集群,如Twemproxy或Codis。 9. **安全与性能优化**: Redis默认未开启密码认证,为了安全性,可以在配置文件中设置`...

    Java面试题redis部分.docx

    - 基于代理分片如 Codis 和 Twemproxy,简化客户端操作,但引入额外的性能开销。 4. 双写一致性问题通常通过事务或特定策略解决,如双删延迟策略,先删除 Redis 数据,更新数据库,等待一段时间后再删除 Redis ...

    史上最全50道Redis面试题!.zip

    - Redis是什么:Redis是一个开源的、基于内存的数据结构存储系统,可作为数据库、缓存和消息中间件。 - 数据类型:Redis支持五种基本数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和...

Global site tag (gtag.js) - Google Analytics