首页 > 数据库 >对比 redis cluster 和 elasticsearch

对比 redis cluster 和 elasticsearch

时间:2023-06-13 10:47:56浏览次数:40  
标签:slot redis cluster elasticsearch 分片 节点

一. 对比

redis 提供了redis sentinal 的高可用策略,以及redis cluster来支持扩展性(同时也支持高可用)。redis cluster,ealsticsearch 都属于有状态数据存储服务,这里做一个简单的对比。

特性 redis cluster elasticsearch  备注
主要设计目标 在保证high performance的条件下,提供可扩展性 可扩展,高可用  
数据特点 内存存储,存储的数据一般不超过GB级别 主要为硬盘存储,elasticsearch 存储数据通常在TB级别以上 针对不同的数据特点,redis 和 elasticsearch 采用不同的分区策略。考虑redis较小的数据规模,redis在存储数据时候可以做轻量的设计,比如将所有数据分为固定数量的slot,做精细化的数据迁移
数据内容 kv 对 倒排索引,文档,docValues,并区分topic  
数据分区 数据分为2^14 个slot,slot分布在多个master节点上;最多支持 1000个节点 对每个topic进行分区,分片均匀分布在各个节点上 elasticsearch 的分片 rebalance 更智能,redis cluster 需要手动调整slot位置
复制与分片 一个节点要么是master,要么是replica 一个节点包含多个分片,有主分片,复制分片  
路由算法 crc16(key) / 2^14,或者使用hashTag shard = hash(routing) % number_of_primary_shards  
查询代理 无代理,客户端直接进行查询,如果查询节点没有对应的slot,返回MOVE error,客户端使用新的节点查询。这样做可以降低redis 节点压力,避免同步调用。 每个节点可以当做代理节点,向其他节点发送请求,合并响应返回给客户端  
客户端 客户端需要缓存slot 和 node 的映射关系  
可用性 复制节点支持failover 复制分片支持failover  
写入复制 采用异步复制,保证写入高性能 可配置写一致性,quorum/one/all, 默认为quorum,即大多数分片可用才允许写操作  
选举算法 gossip bully gossip算法能预防广播风暴
节点间通信tcp端口 10000 + data port (Redis Cluster Bus) 9300 redis 和 elasticsearch 都是用特定tcp端口进行节点间互相通信,保持长连接

标签:slot,redis,cluster,elasticsearch,分片,节点
From: https://www.cnblogs.com/darcy-yuan/p/17476705.html

相关文章

  • flume+elasticsearch
    简单描述一下这个例子:将项目日志实时采集到elasticsearch,便于统一管理。1.收集日志格式为:log4j.properties: org.apache.log4j.Logger: %d{ISO8601}[%l-%M]-[%p]%t%m%nlogback.xml:org.slf4j.Logger:  %date[%logger:%L]-[%level]%thread%msg%n2.flume1.7.0(flume......
  • Redis基础
    什么是Redis关系型数据库(SQL):结构化(Structured):具有固定的格式,使用表以及表的约束。存储的信息要严格按照约束存储。表的结构不建议修改。关联的(Relational):表与表之间往往存在关联,例如通过外键关联。数据库就维护这些关联。SQL查询:所有关系型数据库通过SQL语句查询,语法固......
  • Redis 常见问题总结
     目录 一、Redis为什么快?二、Redis合适的应用场景三、Redis为什么6.0之前不支持多线程四、Redis为什么6.0之后引入多线程五、Redis有哪些高级功能六、为什么需要使用Redis七、Redis的事务八、Redis的过期策略以及内存淘汰机制九、什么是缓存穿透?如何避免?十、什么是缓......
  • Redis的rehash的策略
    背景:redis字典(hash表)当数据越来越多的时候,就会发生扩容,也就是rehash对比:java中的hashmap,当数据数量达到阈值的时候(0.75),就会发生rehash,hash表长度变为原来的二倍,将原hash表数据全部重新计算hash地址,重新分配位置,达到rehash目的redis中的hash表采用的是渐进式hash的方式:1、red......
  • redis之hash解析
    Redis底层数据结构之hashhash是日常开发过程中使用Redis的一个数据结构,其底层实现方式有两种,如下所示。一种是zipList,这种是当hash结构的V值较小的时候使用的编码方式。这个已经在上一篇文章中介绍过了。这篇文章主要讲解一下另外一种实现方式,字典dict,当hash结构的V值较大时采用......
  • Redis rehash
     Redisrehash是什么?Redisrehash是一种渐进式的哈希表扩展或收缩的机制,用于保持哈希表的负载因子在一个合理的范围内,提高哈希表的性能和空间利用率12。哈希表是Redis的基础数据结构,用于存储键值对。哈希表由一个数组和一个链表组成,数组的每个元素是一个指向链表的指针,链......
  • Redis高可用的三种实现方式
    Redis高可用的三种实现方式一、高可用的概念​高可用(HighAvailability,即HA),指的是通过尽量缩短日常维护操作和突发的系统崩溃所导致的停机时间,以提高系统和应用的可用性。一个业务系统如果全年无一时刻不在提供服务,它的可用性可达100%。那么什么样的系统可以称之为高可用呢,业......
  • redis的消息发布订阅实现
    文章目录前言一、创建好springboot项目,引入核心依赖二、使用步骤1.自定义一个消息接受类2.声名一个消息配置类3.编写一个测试类总结前言一般项目中都会使用redis作为缓存使用,加速用户体验,实现分布式锁等等,redis可以说为项目中的优化,关键技术实现立下了汗马功劳.今天带来它......
  • redis三:key常用命令
    1.keys*显示所有keyexistsk1k2...有几个就显示几2.typekey显示key的类型 3.delkey删除指定的key4unlinkkey非阻塞删除,del原子的有可能阻塞5.expirekey秒为key设置过期时间ttlkey查看还有多少秒过去,-1永不过期,-2表示已过期 6. redis带着16个库,默认在......
  • Redis实现分页和多条件模糊查询方案
    简介: 本文将基于Redis提供条件查询+分页的技术解决方案。 导言Redis是一个高效的内存数据库,它支持包括String、List、Set、SortedSet和Hash等数据类型的存储,在Redis中通常根据数据的key查询其value值,Redis没有模糊条件查询,在面对一些需要分页、排序以及条件查询的场景时(如......