在 Redis 日常使用中,我们常会遇到这样的场景:给一个键设置了过期时间后,又在过期前重复设置该键(且不指定过期时间)。这种操作会产生什么效果?是保留原过期时间,还是清除过期时间?本文将从实际现象出发,结合 Redis 源码,彻底揭开这一行为的底层逻辑。 一、直观现象:重复设置键会清除过期时间 先
在 Redis 的五大基本数据类型里,String 类型看似是最朴素的存在,却像基石般支撑着无数核心场景 —— 小到缓存用户 Token、实现分布式锁,大到计数器统计、bitmap 位图操作,几乎所有 Redis 相关的业务都离不开它。 但你知道吗?这个看似 “简单” 的类型,其底层实现藏着 Red
pgbouncer 作为 PostgreSQL 的连接池代理,无法正确处理 currval() 函数,核心原因是 currval() 依赖数据库会话(session)级别的状态,而连接池的 “连接复用” 机制会破坏这种会话关联性。 1. currval() 的本质:依赖会话级序列状态 currval
pgbouncer 作为连接池代理,其 “连接复用” 机制会打破应用逻辑会话与数据库物理连接的绑定关系,因此所有依赖 数据库会话(session)级状态 的操作都可能出现问题。除了 currval(),以下是常见的类似问题场景: 1. 会话级临时表(CREATE TEMPORARY TABLE) 问