根据以往的测试结论,单个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
分享到:
相关推荐
**基于Twemproxy的代理设计** 1. **写入端设计**:采用一级Twemproxy架构,一个Twemproxy实例管理多个Redis实例,写入数据通过一致性Hash算法(如fnv1a-64和ketama)分片到不同的Redis节点,确保数据的均匀分布。 ...
综上所述,Redis、SSDB和Twemproxy的组合,能构建一个高可用、高并发的分布式键值存储系统。通过合理配置和优化,可以满足各种复杂场景的需求,确保数据的高效存储和访问。在实际项目中,根据业务特性和规模,选择...
Redis是一个开源的、使用ANSI C编写的key-value类型内存数据库,它...面试官通常会询问Redis的工作原理、数据类型、持久化机制、内存管理、事务机制以及集群方案等,以便考察面试者对Redis的理解程度和实际应用能力。
基于redis实现分布式实战 图解Redis中的AOF和RDB持久化策略的原理 redis读写分离架构实践 redis哨兵架构及数据丢失问题分析 redis Cluster数据分布算法之Hash slot redis使用常见问题及性能优化思路 redis高...
【分布式缓存Redis + Memcached】是现代互联网应用中常用的技术组合,用于高效地存储和检索数据,以提高系统的响应速度和并发处理能力。这里我们将深入探讨这两个分布式缓存系统的特点,以及它们在面试中经常遇到的...
虽然Redis 3.0.501不支持官方的集群模式,但可以通过社区开发的工具如Twemproxy或Redis Sentinel实现分布式部署。在更高版本的Redis中,原生集群功能已经加入,能提供更强大的扩展性和高可用性。 通过了解并熟练...
- **Codis**:这是一个基于Redis的分布式数据库系统,旨在解决大规模数据访问的问题,适合于需要水平扩展的应用场景。 #### 主从同步过程 主从同步机制确保了数据的一致性和高可用性。其核心流程如下: 1. **初始...
### 分布式缓存Redis与Memcached对比 #### Redis的优势 1. **数据类型丰富**:Memcached所有的值均为简单的字符串,而Redis则支持多种数据类型,如字符串(Strings)、列表(Lists)、集合(Sets)、有序集合(Sorted ...
为了应对这些挑战,Nice团队基于Redis进行了深度定制和改造,构建了一个全新的分布式平台。该平台的核心组件包括Metaserver、Redis Server、Proxy以及一系列自定义的数据结构如XSet等。 ##### 1. Metaserver介绍 -...
Codis是一个分布式Redis解决方案,对于上层的应用来说,连接到CodisProxy和连接原生的RedisServer没有明显的区别(不支持的命令列表),上层应用可以像使用单机的Redis一样使用,Codis底层会处理请求的转发,不停机的...
Redis还支持主从复制、高可用和分布式集群等功能,使其在处理大规模数据时依然保持高性能。 在安装方面,Redis可在Windows和Linux系统下运行。对于Windows用户,需要做适当的准备工作后下载安装包,而Linux用户则需...
Redis 集群模式则采用分片策略,常见的有客户端分片、基于代理的分片(如 Twemproxy 和 Codis)以及 Redis-Cluster 自身的分片方案。Redis-Cluster 使用槽的概念,将数据分布到多个节点,每个节点负责一部分槽,通过...
Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的...
Redis 是一个开源的、基于内存的数据存储系统,它支持多种数据结构,如 String、List、Set、Sorted Set、Hashes 等。Redis 的主要特点是高性能、支持多种数据结构、可以持久化数据、可以设置过期时间等。 Redis 的...
虽然3.2.1版本不包含完整的Redis Cluster功能,但你可以通过其他方式在Windows上实现分布式集群,如Twemproxy或Codis。 9. **安全与性能优化**: Redis默认未开启密码认证,为了安全性,可以在配置文件中设置`...
- 基于代理分片如 Codis 和 Twemproxy,简化客户端操作,但引入额外的性能开销。 4. 双写一致性问题通常通过事务或特定策略解决,如双删延迟策略,先删除 Redis 数据,更新数据库,等待一段时间后再删除 Redis ...
- Redis是什么:Redis是一个开源的、基于内存的数据结构存储系统,可作为数据库、缓存和消息中间件。 - 数据类型:Redis支持五种基本数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和...