排序
面试题:Redis 中的 Ziplist 和 Quicklist 数据结构的特点是什么?
Redis 中的 Ziplist 和 Quicklist 是两种用于优化内存使用和提高性能的数据结构,分别用于实现列表(List)和哈希表(Hash)等数据类型。以下是它们的特点和设计原理。 1.&...
面试题:Redis 和 Memcached 有哪些区别?
Redis 和 Memcached 都是高性能的内存缓存系统,但它们的设计目标、功能特性和适用场景有所不同。以下是它们的主要区别: 1. 数据类型 Redis: 支持多种数据类型,包括字符...
场景题:两百万个生产者发送消息,仅一个消费者,如何高效设计锁?
在 两百万个生产者发送消息,仅一个消费者 的场景中,设计高效的锁机制是一个典型的并发编程问题。目标是确保生产者和消费者能够高效地协作,同时避免锁竞争导致的性能瓶颈。以下是详...
面试题:RabbitMQ 中无法路由的消息会去到哪里?
在 RabbitMQ 中,如果消息无法被路由到任何队列(例如没有绑定队列或路由键不匹配),消息的处理方式取决于交换机的配置。以下是消息无法路由时的可能去向: 1. 默认行为:消息被丢弃 如果...
面试题:如何使用 Redis 快速实现布隆过滤器?
布隆过滤器(Bloom Filter)是一种概率数据结构,用于快速判断一个元素是否存在于集合中。它的特点是: 空间效率高:使用较少的内存存储大量数据。 查询速度快:时间复杂度为 O(k),k 是哈希函...
场景题:如何设计一个点赞系统?
设计一个点赞系统需要考虑多个方面,包括系统架构、数据存储、性能优化、扩展性和一致性等。以下是一个详细的设计思路: 1. 需求分析 功能需求: 用户可以点赞或取消点赞。 显示点赞总数。 显示...
场景题:微服务中远程调用的超时时间应该设置为多少合适?
在微服务架构中,远程调用(RPC)的超时时间设置是一个关键的设计决策,直接影响系统的稳定性、性能和用户体验。超时时间设置过短可能导致大量请求失败,设置过长则可能导致资源浪费和系统雪崩...
面试题:如何保证消息的有序性?
保证消息的有序性是消息队列设计中的一个重要问题,尤其是在需要严格顺序处理的场景中(如订单处理、日志处理等)。以下是如何保证消息有序性的常见方法和技术: 1. 消息有序性的挑战 在分布式...
面试题:Redis Zset 的实现原理是什么?
Redis 的有序集合(Zset)是一个复合数据结构,它结合了 跳表(Skip List) 和 哈希表(Hash Table) 来实现高效的数据存储和操作。以下是 Zset 的实现原理: 1. Zset...
面试题:Redis 的哨兵机制是什么?
Redis 的哨兵机制(Sentinel)是 Redis 高可用性(High Availability, HA)解决方案的核心组件之一。它的主要作用是监控 Redis 主从集群的状态,并在主节点(Master)发生故障时,自动进行故障...