logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

redis集群之hash槽分析算法

上文提过了 hash取余算法和hash一致性算法一致性hash算法是为了减少节点数目发生改变时尽可能的减少数据迁移将所有的存储节点排在首位相连的Hash环上,每个key在计算hash后会顺时针找到临近的存储节点。而当有节点加入或退出时,仅影响该节点在hash环上顺时针相邻的节点。优点缺点刚刚提到一致性hash算法有数据倾斜问题,为了解决这个问题便又了hash槽分析算法。

文章图片
#redis
redis消费组的创建与使用

请注意,我们可能会多次或一次处理消息(至少在消费者失败的情况下,但也涉及Redis持久性和复制的限制,请参阅有关此主题的特定部分)。这样,Alice、Bob和组中的任何其他消费者都能够从同一流中读取不同的消息,阅读他们尚未处理消息的历史记录,或将消息标记为已处理。如果ID是“>” 该命令将仅返回迄今为止从未发送给其他消费者的新消息,还有一个作用,将更新消费者组的最后一个ID。如果您还不知道XACK

文章图片
#java#数据库#bash
redis stream消费组与kafka的的不同

Redis流中的消费者群体可能在某种程度上类似于基于Kafka(TM)分区的消费者群体,但请注意,实际上,Redis流非常不同。分区只是逻辑的,消息只是放入一个Redis key中,因此不同客户端的服务方式取决于谁准备好处理新消息,而不是从哪个分区客户端读取。例如,如果消费者C3在某些时候永久失败,Redis将继续为C1和C2提供所有到达的新消息,就好像现在只有两个逻辑分区一样。同样,如果给定的消

文章图片
#redis#kafka#数据库
第九章redis stream 特殊的ID

前两个特殊ID是-和+,用于使用XRANGE命令进行范围查询。这两个ID分别意味着最小的ID(基本上是0-1)和最大的ID(即184467440709551615-18446744073709551615)。正如你所看到的,写-和+而不是那些数字要j简洁得多。您可能已经注意到,Redis API中可以使用几个特殊ID。这里有一个简短的回顾,以便它们在未来更有意义。

文章图片
#redis#java#数据库
redis 消费组介绍

当消息是来自不同生产者的相同流时,那么XREAD已经提供了一种扇出到N个客户端的方法。然而,在某些问题上,我们想做的不是向多个消费者提供相同的消息流,而是向多个消费者提供来自同一流的不同消息子集。这样有一个明显的好处:通过多个消费者,加速处理消息。

文章图片
#java#开发语言
redis stream 消息转移原理

同一消费者组的消费者,每个消费者都接受消息的子集进行处理,并在从失败中恢复时重新读取仅发送给他们的待处理消息。然而,在现实世界中,消费者可能会永久失败,永远不会恢复。消费者停止后,从未恢复的待处理消息会发生什么?

#redis#数据库#java
Sentinel的限流和Gateway的限流差别?

并发的多个请求必须等待,预期的等待时长-最近一次请求的预期等待时间+允许的间隔。比如是1250ms 时来个请求,1250-1000=250, 250后面的第一个时区是500-100。限流算法常见的有三种实现:滑动时间窗口,令牌桶算法,漏桶算法。例如: QPS=5 ,意味这没200ms处理一个队列中的请求,timeout=2000,意味着预期等待超过2000ms的请求会被拒绝并抛出异常。观上图,这种

文章图片
#sentinel#gateway
Redis6 数据结构Hash

在Redis中,hashtable 被称为字典(dictionary),它是一个数组+链表到结构。每个键值对都会有一个dictEntry这种编码夯实内部才是真正的哈希表结构,或称为字典结构,其可以实现O(1)复杂度的读写操作,因此效率很高。在Redis内部。

文章图片
#redis
到底了