-
MySQL通过CREATEUSER和DROPUSER创建删除用户,2.使用GRANT和REVOKE授予权限与撤销权限,3.用SHOWGRANTS查看权限,4.执行FLUSHPRIVILEGES刷新权限,5.注意限制访问来源并定期审查账户以提升安全性。
-
应立即停止Redis服务,恢复备份RDB文件,并严格配置user、dir权限(700)、禁用save""、检查日志权限错误;AOF重写需确保目录UMask=077、禁用绝对路径appendfilename;混合持久化与容器化部署须同步宿主机文件属主和权限。
-
安全重启Redis集群的正确做法是逐个节点操作,优先处理从节点,严格等待redis-cli--clustercheck返回OK后再进行下一轮,避免脑裂、槽位丢失和连接雪崩。
-
slowlog是Redis唯一实时捕获慢命令的机制,为内存环形缓冲区,仅记录执行耗时超阈值的命令,不包含网络延迟与排队时间;默认阈值10ms,建议调至5ms,slowlog-max-len建议设为1024,并需CONFIGREWRITE持久化。
-
Redis集群必须使用ntpd或chronyd平滑同步时间,内网部署专用NTP服务器,配置restrict规则、硬件时钟同步和开机自启,并通过ntpq-p、ntpq-crv及Redis日志持续监控。
-
后台线程异步刷新热Key本质是“逻辑过期+守护任务”组合,由应用层实现定期扫描预判并更新热点数据,需嵌逻辑过期时间于value中、合理设扫描频率与范围,并加分布式锁、失败重试及错峰调度。
-
在Redis集群中查某个key的实时内存占用需先定位其所在slot和节点:用CLUSTERKEYSLOT算slot号,CLUSTERSLOTS查对应主节点IP:PORT,再连该节点执行MEMORYUSAGE;因官方redis-cli--cluster不支持透传该命令,且结果为估算值,需注意偏差与重试机制。
-
Redis不设maxmemory时不会触发淘汰机制,因默认策略noeviction且不启动任何淘汰逻辑,内存持续增长直至OOMKiller强杀进程。
-
典型现象是Redis从节点反复断连,日志出现“Clientclosedconnectionduetooutputbufferlimit”,INFOreplication中状态在connect→sync→disconnected循环;主节点因输出缓冲区超限(默认slave256MB/64MB/60s)主动断开连接。
-
Redis禁止BGSAVE与BGREWRITEAOF并发执行,是为避免双子进程争抢CPU、I/O、COW内存页及fsync队列;前者返回错误,后者被排队;no-appendfsync-on-rewriteyes可缓解AOF重写时主进程fsync阻塞,但对BGSAVE无效。
-
根本原因是Redis集群要求多键操作的key必须位于同一slot,而HashTag(如{user:1}:profile)通过仅哈希花括号内内容实现强制同槽,但需命令本身支持多key且全链路保留括号语义。
-
用SETBIT和GETBIT做存在性判断最直接:SETBIT设定位为1,GETBIT查该位是否为1,O(1)时间、极省空间;不可用BITCOUNT替代,不支持三态,需确保ID到偏移量映射一致。
-
不能。RedisList无自动回绕机制,需配合LTRIM控制长度实现伪循环队列;RPOPLPUSH不限长也不丢弃数据;原子性操作须用Lua脚本封装;Stream的MAXLEN更贴近循环语义但不支持随机访问。
-
用iptables模拟Redis哨兵网络分区需双向封禁节点间通信(INPUT+OUTPUT),匹配6379/26379端口,确保Quorum计算失效;恢复时须精准删除规则而非清空链,避免锁死服务器。
-
allkeys-random策略在内存超限时随机删除任意key,适合一致性要求低的缓存场景;需先配置maxmemory,且不区分key是否设过期时间。