青云博客 分享、记录

说说你对Redis操作原子性的理解

Redis 的操作是原子性的,这是因为 Redis 的每个命令都是以单线程的方式执行的,整个命令的执行过程是不可中断的,要么全部执行成功,要么全部执行失败。 在 Redis 中,每个命令都会被转换成一个或多个底层操作,这些操作会基于数据结构的特定实现来执行。比如,对于字符串类型,获取一个键值对、设置

詹学伟 发布于 2024-04-23

你是如何解决热Key问题的

热 Key 问题是指在缓存系统中,某些特定的缓存key受到高频访问,导致对这些热门数据的读取/写入操作集中在少数几个缓存节点上,使得这些节点的负载过高,而其他节点负载较轻甚至空闲。这会造成系统性能不均衡,可能导致部分请求响应变慢或服务不可用。 解决热 Key 问题有这些方案: 缓存预热:在系统启动或

詹学伟 发布于 2024-04-23

说说你对缓存双写不一致的理解(深入)

缓存双写不一致是指在使用缓存的架构中,当数据更新时,由于缓存和数据库的写操作没有同步进行,导致数据在缓存和数据库之间出现不一致的情况。 以下是对缓存双写不一致的一般理解: 更新顺序问题:当应用程序更新了数据库中的数据,但在更新缓存之前发生了错误或异常,导致缓存中的数据仍然是旧值。这种情况下,数据库中

詹学伟 发布于 2024-04-23

说说你对缓存双写不一致的理解

缓存双写不一致是指在使用缓存的架构中,当数据更新时,由于缓存和数据库的写操作没有同步进行,导致数据在缓存和数据库之间出现不一致的情况。 以下是对缓存双写不一致的一般理解: 更新顺序问题:当应用程序更新了数据库中的数据,但在更新缓存之前发生了错误或异常,导致缓存中的数据仍然是旧值。这种情况下,数据库中

詹学伟 发布于 2024-04-23

Redis面试题

Redis相比memcached有哪些优势? 这是一道非常常见的面试题,也是大家在工作中很容易忽略掉的点,大部分场景下redis确实更适合用于我们项目,但是我们可能答不上来它们都作为键值对数据库其中的区别是什么。 从数据结构侧来说,memcached仅支持value为string类型,而我们redi

詹学伟 发布于 2024-04-23

什么是Redis哨兵机制

Redis 哨兵是一种用于高可用性的解决方案,它可以监控 Redis 主从复制模式下的主节点和从节点,发现节点故障,并自动进行故障转移,保证 Redis 系统的稳定性和可靠性。 Redis 哨兵机制由多个相互独立的进程组成,这些进程使用 TCP/IP 协议相互通信,实现 Redis 节点的监控和故障

詹学伟 发布于 2024-04-23

什么是Redis哨兵机制(深入)

为什么需要哨兵机制? Redis的主从复制主要用于实现数据的冗余备份和读分担,并不是为了提供高可用性。因此在系统高可用方面,单纯的主从架构无法很好的保证整个系统高可用。比如说:

詹学伟 发布于 2024-04-23

redis集群会有写操作丢失吗?为什么

在Redis集群中,由于采用了主从复制模型的异步复制机制,写操作有一定的丢失风险。 当客户端向主节点发送写操作时,主节点会立即返回成功响应,而不等待所有从节点执行复制。如果主节点在执行完写操作后出现故障或网络问题,导致从节点无法及时接收到复制操作,那么这些未复制的写操作将会丢失。 为了减少写操作丢失

詹学伟 发布于 2024-04-23

说说你对pipeline的理解

PIPELINE 是 Redis 提供的优化命令执行的机制,通过减少网络往返次数和批量处理命令来提高性能。 它将多个命令打包发送给服务器,减少了网络延迟,提升了吞吐量。 使用 PIPELINE 还可以降低服务器资源消耗,提高整体效率。适用于需要连续执行多个命令或批量操作的场景,特别适合延迟敏感或大量

詹学伟 发布于 2024-04-23

redis 集群的原理是什么

Redis 集群通过数据分片和主从复制实现了横向扩展和高可用性。它将数据划分为 16384 个哈希槽,并将这些槽均匀地分配到多个节点上。每个节点负责处理一部分槽的数据,实现了数据的分散存储和负载均衡。 在集群中,每个哈希槽有一个主节点和多个从节点。

詹学伟 发布于 2024-04-23