`
zhaoshijie
  • 浏览: 2241211 次
  • 性别: 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官方正式推出可用于生产环境的集群方案前,以上三种方案是非常值得考虑在生产环境使用的方案。
分享到:
评论

相关推荐

    spring集成redis单节点、集群、哨兵配置

    Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 支持单实例模式,集群主从模式、哨兵模式等部署

    docker 部署Redis集群节点.pdf

    Redis是一款开源的高性能内存键值存储数据库,常用于缓存、数据库和消息中间件等场景。如果您需要部署一个Redis集群,Docker可以帮助您更轻松地完成此任务。以下是关于使用Docker部署Redis集群节点的一些资源: - ...

    集群搭建:redis-3.2.1

    Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。

    redis缓存技术

    它可以处理超大量的数据,运行在便宜的pc服务器集群上,击碎了性能瓶颈(性能好,也不需要优化,对数据高并发读写,对海量数据的高效率存储和访问,对数据的高扩展性和高可用性(没有表结构,分布式简单))redis的...

    redis-cluster-4.0.1集群镜像

    Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。 它通过提供多种键值数据类型来适应不同场景下的存储需求。 目前为止Redis支持的键值数据类型如下: 1. 字符串类型 2. 散列类型 3. 列表类型 4...

    非关系型缓存数据库redis

    Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型...除此之外,Redis支持事务、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。

    redis-go-cluster, 在Go中,redis集群客户端实现.zip

    redis-go-cluster, 在Go中,redis集群客户端实现 redis-go-clusterredis-go-cluster是基于 burd burd burd的客户端的一个golang实现的。 它在本地缓存 slot 信息,并在集群更改时自动更新。 客户端管理每个 node的...

    redis3.0安装包 window 64位

    (4)集群:Redis 3.0支持集群,可以将多个Redis实例拼接成一个集群,并实现负载均衡,提高Redis的可用性。 3、总结: Redis 3.0是一款高性能的开源内存数据库,它拥有非常快速的读写性能,几乎是传统数据库的1000倍...

    docker-magento2, Magento2 varnish PHP7 Redis SSL ( 集群就绪).zip

    docker-magento2, Magento2 varnish PHP7 Redis SSL ( 集群就绪) Magento2 ( varnish PHP7 Redis SSL ) 集群准备构建基础设施基础设施概述容器 1: MariaDB容器 2: Redis ( 用于magento的高速缓存)容器 3: Apache...

    Redis-64-5.0.10.7z

    高可用性:Redis可以配置主从复制、哨兵和集群等高可用方案,保证数据的安全性和可靠性。 可扩展性:Redis可以水平扩展,通过添加节点来提高存储和查询的性能。 支持事务:Redis可以使用事务来保证多个操作的原子性...

    java缓存工具SimpleCache.zip

    5. 支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点   ...

    win版redis客户端安装包,可视化工具

    Redis是一个开源(BSD许可),内存中的数据结构存储,用作数据库、缓存和消息代理。...Redis具有内置的复制、Lua脚本、LRU退出、事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis集群自动分区提供高可用性

    redis3.0源码

    开源键值对存储数据库Redis在4月1日发布了3.0.0版。主要新特性包括:Redis Cluster,Redis子集的分布式实现;新的“嵌套字符串”对象编码减少缓存遗漏,大幅提高某些工作负荷的速度;等等。开发者Salvatore ...

    基于javatcpsocket通信的拆包和装包源码-seckill-practice:redis-秒杀项目实战

    redis集群+sentinel高可用 布隆过滤 标志位防止流量倾斜,缓存预热防止缓存穿透 redis缓存秒杀 异步写入数据库 redis知识 redis主从集群的搭建与docker通信知识 docker搭建redis主从集群 查看docker所有容器的ip: ...

    Redis的介绍和使用(超详细概念介绍)

    5:高可用性。6:发布订阅机制。7:Redis的安装。 Redis是一个开源的内存数据库,属于NoSQL数据库的一种。它以高性能、支持丰富的数据结构、持久化特性、复制、集群以及发布/订阅等特性而闻名。可以应用于各种场景,...

    Redis-x64-3.0.504可视化迷你安装包.zip

    Redis是一个快速、开源、高性能的内存键值数据库,它支持多种不同类型的数据结构,如字符串、列表、散列、集合和有序集合,应用于缓存、队列、发布/订阅等多种场景下。 以下是Redis的一些特点: 1. 内存存储 ...

    Redis集群的相关详解

    Redis是用C语言开发的一个开源的高性能键值对(key-value)的非关系型数据库。通过多种键值数据类型来适应不同场景下的存储需求,目前支持的键值数据类型有: 字符串,散列,列表,集合,有序集合 2.2应用场景 缓存...

    redis-3.0.503_x64.rar|redis-3.0.503_x64.rar

    Redis是一个开源的、基于内存的数据结构存储器,可以用作数据库、缓存和消息中间件。redis-3.0.503_x64位免安装版,下载即用。

    Java开发面试-Redis专区

    当准备面试Java开发Redis部分时,对于工作一年左右经验的开发者来说,了解和掌握Redis的...例如,如何通过集群部署和主从复制提高Redis的性能和可用性,如何进行数据持久化和备份,如何处理节点故障和数据一致性等。

    360开源的高性能分布式存储服务 HustStore.zip

    高性能分布式存储服务huststore 是一个高性能的分布式存储服务,不但提供了 10w QPS 级别的 kv 存储的功能,还提供了 hash、set 等一系列数据结构的支持,并且支持 二进制 的 kv 存储,可以完全取代 Redis 的功能。...

Global site tag (gtag.js) - Google Analytics