`
zhaoshijie
  • 浏览: 2265382 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

高可用、开源的Redis缓存集群方案

 
阅读更多
推荐综合架构交流群:JAVA开发高级群  点击入群!!!
关键字:高可用、开源的Redis缓存集群方案
由于单台Redis服务器的内存管理能力有限,使用过大内存的Redis又会使得服务器的性能急剧下降,一旦服务器发生故障将会影响更大范围业务,而Redis 3.0 beta1支持的集群功能还不适合生产环境的使用。于是为了获取更好的Redis缓存性能及可用性,很多公司都研发了Redis缓存集群方案。现对NetFlix、Twitter、国内的豌豆荚在缓存集群方面的解决方案进行一个汇总,以供读者参考,具体内容如下:
1、NetFlix对Dynamo的开源通用实现Dynomite

Dynomite是NetFlix对亚马逊分布式存储引擎Dynamo的一个开源通用实现,使用C/C++语言编写、以代理的方式实现的Redis缓存集群方案。Dynomite不仅能够将基于内存的Redis和Memcached打造成分布式数据库,还支持持久化的MySQL、BerkeleyDB、LevelDB等数据库,并具有简单、高效、支持跨数据中心的数据复制等优点。Dynomite的最终目标是提供数据库存储引擎不能提供的简单、高效、跨数据中心的数据复制功能。Dynomite遵循Apache License 2.0开源协议发布,更多关于Dynomite的信息请查看NetFlix技术博客对Dynomite的介绍。
2、Twitter的Redis/Memcached代理服务Twemproxy

Twemproxy是一个使用C语言编写、以代理的方式实现的、轻量级的Redis代理服务器,它通过引入一个代理层,将应用程序后端的多台Redis实例进行统一管理,使应用程序只需要在Twemproxy上进行操作,而不用关心后面具体有多少个真实的Redis或Memcached实例,从而实现了基于Redis和Memcached的集群服务。当某个节点宕掉时,Twemproxy可以自动将它从集群中剔除,而当它恢复服务时,Twemproxy也会自动连接。由于是代理,所以Twemproxy会有微小的性能损失。根据 Redis作者的测试结果,在大多数情况下,Twemproxy的性能相当不错,同直接操作Redis相比,最多只有20%的性能损失。Twemproxy遵循Apache License 2.0开源协议发布,更多关于Twemproxy的信息请登录其在GitHub的主页查看。
3、豌豆荚的 Redis 集群解决方案Codis

Codis是豌豆荚使用Go和C语言开发、以代理的方式实现的一个Redis分布式集群解决方案,且完全兼容Twemproxy。Twemproxy对于上一层的应用来说, 连接Codis Proxy(Redis代理服务)和连接原生的Redis服务器没有明显的区别,上一层应用能够像使用单机的 Redis一样对待。Codis底层会处理请求的转发、不停机的数据迁移等工作, 所有底层的一切处理, 对于客户端来说是透明的。总之,可以简单的认为后台连接的是一个内存无限大的Redis服务。Codis遵循MIT开源协议发布,更多关于Codis的信息请登录其在GitHub的主页查看。

4、tair
tair 是淘宝自己开发的一个分布式 key/value 存储引擎. tair 分为持久化和非持久化两种使用方式. 非持久化的 tair 可以看成是一个分布式缓存. 持久化的 tair 将数据存放于磁盘中. 为了解决磁盘损坏导致数据丢失, tair 可以配置数据的备份数目, tair 自动将一份数据的不同备份放到不同的主机上, 当有主机发生异常, 无法正常提供服务的时候, 其于的备份会继续提供服务.

另外,还有一些未开源的解决方案,比如新浪、百度、淘宝、腾讯等的Redis集群方案。在Redis官方正式推出可用于生产环境的集群方案前,以上三种方案是非常值得考虑在生产环境使用的方案。
分享到:
评论

相关推荐

    mybatis+redis缓存配置

    ### MyBatis与Redis缓存配置详解 #### 一、MyBatis缓存机制概述 在MyBatis中,缓存是一项重要的性能优化措施。它能够显著减少数据库的访问次数,提高应用程序的响应速度。MyBatis提供了两种级别的缓存支持:一级...

    新redis5.0.5集群搭建 by crj.docx

    Redis 5.0.5 集群搭建详解 Redis 是一个开源、基于内存的数据存储系统,提供了多种数据结构,如字符串、哈希表、...Redis 集群提供了高可用性、高性能和负载均衡等优点,广泛应用于缓存、消息队列、数据存储等领域。

    用Go编写的基于代理的高性能Redis集群解决方案Codis.rar

    标题"用Go编写的基于代理的高性能Redis集群解决方案Codis.rar"指出,这是一个使用Go编程语言实现的,针对Redis集群的高性能解决方案,名为Codis。Codis是一个中间件,旨在解决单个Redis实例在处理大规模数据和高并发...

    redis缓存数据库jar包

    Redis是一款高性能的键值对数据存储系统,常被用作...在具体实施过程中,我们需要注意选择合适的Redis客户端库,正确配置连接参数,并理解Redis的数据持久化、复制和集群等高级特性,以确保应用的稳定性和高可用性。

    redis3.2集群部署

    Redis 是一种开源的内存中的数据结构存储系统,可以作为数据库、缓存以及消息中间件来使用。由于其高性能和灵活性,Redis 成为了许多分布式系统中不可或缺的一部分。随着业务规模的增长,单机版 Redis 已经难以满足...

    Redis缓存服务系统

    Redis是一款高性能的键值对数据存储系统,常用于构建分布式缓存、消息队列和实时数据分析等场景。作为一款开源的内存数据结构存储系统,它支持多种数据结构,如字符串、哈希表、集合、有序集合等,这些数据结构的...

    springboot集成redis集群,redis安装包配置

    首先,Redis是一个开源的、基于键值对的数据存储系统,常用于数据库、缓存和消息中间件。它以其高性能和易用性而备受青睐。SpringBoot简化了与Redis的集成,使得开发过程更为流畅。 集成SpringBoot与Redis集群的第...

    redis集群批处理一键搭建

    Redis是一个开源的、高性能的键值存储系统,广泛应用于缓存、数据库以及消息中间件等场景。 Redis集群是Redis提供的分布式解决方案,它将数据分散存储在多个节点上,通过一致性哈希算法实现数据的分片和负载均衡。...

    redis3.0.集群环境安装手册

    Redis 是一个开源、基于内存的数据结构存储系统,可以用作数据库、消息队列、缓存层等。 安装环境准备: 在安装 Redis 3.0 集群之前,需要准备以下环境: 1. 安装 gcc,因为 Redis 需要 gcc 来编译安装。 2. 安装 ...

    nginx+lua+redis 集群 连接插件和脚本

    在构建高性能、高可用性的Web服务时,常常会利用到Nginx作为反向代理和负载均衡器,Lua作为扩展Nginx功能的脚本语言,而Redis则作为内存数据存储,提供快速的数据访问。本资源包“nginx+lua+redis集群 连接插件和...

    Redis高可用集群实现1

    【Redis高可用集群实现1】 在构建高可用的Redis集群时,我们通常会结合多种技术以确保服务的稳定性和连续性。在这个方案中,我们利用Sentinel、Twemproxy、Keepalive以及Redis自身来搭建一个高可用的环境。以下是...

    redis集群搭建手册.docx

    Redis集群(Redis Cluster)是Redis官方提供的分布式解决方案,通过数据分片和槽分区来实现数据的分散存储,从而提供高可用性和可扩展性。 **Redis是什么** Redis是一个开源的,基于键值对的数据存储系统,它支持...

    Linux系统中redis集群包和Windows环境中的redis集群资源

    Redis是一种开源的、基于键值对的数据存储系统,常用于数据库、缓存和消息中间件。在本文中,我们将深入探讨Linux系统中的Redis集群以及如何在Windows环境下搭建Redis集群。首先,我们来看一下标题和描述中提及的...

    redis-5.0.4集群环境搭建

    Redis是一个开源的高性能键值存储数据库,通常被称为数据结构服务器。它被广泛用于构建各种类型的缓存系统或数据库,包括数据库、消息中间件等。Redis支持多种类型的数据结构,如字符串(strings)、散列(hashes)...

    redis缓存最新版下载

    Redis,全称Remote Dictionary Server,是一款开源的、高性能的键值对存储系统,常被用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,这使得Redis在处理各种场景时具有...

    shiro连接redis集群 根据org.crazycake.shiro包改造源码

    在分布式系统中,尤其是在使用Redis作为缓存或session存储时,Shiro的原生支持可能无法直接与Redis集群配合工作。这里提到的"shiro-redis-cluster"项目,显然是针对这个问题进行的一个定制化改造,它使得Shiro能够...

    CentOS7.5安装Redis集群.docx

    Redis 是一个开源的、基于内存的数据结构存储系统,可以用作数据库、消息队列、缓存等。下面是安装和配置 Redis 集群的详细步骤: 一、环境准备 在安装 Redis 集群之前,需要准备好环境。首先,需要安装编译环境,...

    redis windows集群搭建

    Redis Windows集群搭建是一个复杂但重要的任务,特别是在Windows环境中运行Redis以实现高可用性和数据冗余。Redis是一款开源的、基于键值对的数据存储系统,常用于缓存、数据库和消息中间件等场景。在Windows上搭建...

    springboot+redis集群实例,linux 安装redis集群

    这个过程涵盖了多个IT知识点,包括Spring Boot的应用开发、Redis缓存系统以及Linux服务器管理。 首先,Spring Boot是Java领域的一个轻量级框架,它简化了创建独立、生产级别的基于Spring的应用程序。Spring Boot的...

    java客户端测试redis集群

    在IT行业中,Redis是一个非常流行的高性能、开源的内存数据结构存储系统,常被用作数据库、缓存和消息中间件。而Java作为广泛使用的编程语言,有着丰富的库和框架来支持与Redis的交互。当我们谈论“Java客户端测试...

Global site tag (gtag.js) - Google Analytics