-
GEOPOS查不到数据主因是GEOADD未成功:参数顺序错误(须经度在前)、成员名不一致、或pipeline/事务中未等命令执行完;返回值为二维数组,含字符串型经纬度及null,需显式转换且验证存在性。
-
RedisRDB快照生成失败时bgsave返回ERR,主因是fork()系统调用失败,典型表现为日志中出现“Failedtofork()forRDB:Cannotallocatememory”或“Resourcetemporarilyunavailable”,根本原因在于Linux的vm.overcommit_memory设置不当(默认0易拒绝fork)、内存压力过大、ulimit-u或pid_max耗尽,或cgroup内存限制过严;应将vm.overcommit_memory设为1并检查cgroup限制
-
不会阻塞。RDB持久化由fork()子进程执行,主线程继续处理请求;依赖Linux内核写时复制(COW)机制,fork后父子进程共享物理内存页,仅在修改时才复制对应页,保证子进程读取fork时刻快照,但高写入会加剧COW开销。
-
<p>MySQL数据库创建的完整流程包括规划、命名、创建数据库、创建表、权限管理和最佳实践。1.规划时需考虑数据类型、规模、访问频率和扩展性。2.命名应简洁明了并与项目一致,如"projectx_db"。3.使用SQL命令创建数据库并设置字符集和排序规则,如CREATEDATABASEprojectx_dbCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;。4.创建表时遵循规范化设计,避免数据冗余,如CREATETABLEusers(idINTAUTO_
-
Redis分布式锁高并发下饿死请求的根本原因是续期机制与过期时间不匹配、客户端异常未释放锁,且重试无退避和超时兜底;须用随机退避、总等待超时、Lua原子删锁,单节点自动续期锁比Redlock更稳。
-
Redis集群无法在入口统一配置slowlog,因其去中心化架构决定slowlog是节点级内存缓冲区,仅记录本节点命令,CONFIGSET等配置不跨节点生效,必须逐节点独立启用、采集和聚合。
-
MySQL的查询缓存已废弃,是否还值得使用取决于版本和业务场景。1.查询缓存可缓存SELECT语句及其结果,提升读多写少场景的性能;2.但一旦表有写入操作,相关缓存会被清空,高并发写入时易引发性能问题;3.MySQL5.7.20开始标记为废弃,8.0彻底移除,建议使用Redis等外部缓存替代;4.启用时需配置query_cache_type和query_cache_size参数,并合理控制内存大小;5.可通过Qcache_hits、Com_select、Qcache_inserts等状态变量判断缓存命中情
-
Redis6.0+才正式支持volatile-lfu和allkeys-lfu,低版本会静默降级为LRU;需通过CONFIGGET/SET确认并热生效策略,商品Key须按粒度命名(如prod:sku:10086)并用INCR+EXPIRE维护热度,OBJECTFREQ返回0–255近似值仅适用于相对排序,不反映真实访问次数。
-
redis-cli--hotkeys是基于LFU采样的轻量热Key发现工具,需启用allkeys-lfu/volatile-lfu策略,返回最多32个相对高频key,frequency为归一化值,非实时精确计数,须结合objectfreq、monitor等交叉验证。
-
RedisExporter连不上主因是认证或网络策略:启用密码需显式传参--redis.password;Docker部署注意网络模式;ACL需授予INFO/CONFIG/CLIENTLIST权限;Prometheustargets应指向exporter的9121端口而非Redis的6379。
-
FUNCTIONLOAD将函数库作为数据库对象持久化并复制,SCRIPTLOAD仅内存缓存脚本且不落盘、不复制;前者支持高可用与跨节点复用,后者重启或主从切换后即失效。
-
Redis连接数暴涨时,盲目调大maxclients会掩盖问题甚至引发OOM;真实瓶颈在系统级限制、连接池泄漏、僵尸连接及缺乏网络层防护。
-
EVAL需原子性保证竞态安全,因Redis将Lua脚本作为不可分割的单次操作执行,避免“先查后改”在高并发下的数据丢失;其原子性非源于Lua线程安全,而是Redis调度机制保障。
-
云盘IOPS不足会导致bgsave失败或超时,因RDB全量写入触发IO拥塞,表现为“Nospaceleftondevice”错误(实际空间充足);需升级ESSDPL1及以上云盘、确认dir指向高IOPS数据盘、启用混合持久化并禁用save命令。
-
BloomFilter不能单独用于消息去重,因其存在误判率;必须配合Redis的SET或ZSET做最终校验:SET适用于简单幂等场景,ZSET支持滑动窗口限频,典型流程为BloomFilter预筛→Redis精确判定→三重写入。