JAVA面试题速记-redis知识点
1.redis数据结构字符串String哈希Hash列表List集合Set有序集合ZSet字符串 Stringredis中最基本的数据类型,每个键都可以关联一个字符串值哈希 Hash适合存储对象类型数据列表 List有序集合支持 LPUSH/RPUSH 等操作集合 Set无序集合去重支持交并差集。有序集合ZSet有序带权重分数支持按分数排序三种特殊数据结构类Geospatial Hyperloglog Bitmap2.redis 如何持久化数据RDB快照全量备份模式原理定时将内存数据以二进制格式保存到磁盘如/* by yours.tools - online tools website : yours.tools/zh/rc4encrypt.html */save 60 10000表示60秒内10000次修改时触发。优点文件紧凑、恢复速度快。缺点可能丢失最后一次快照后的数据。AOF日志增量备份模式原理记录所有写操作命令支持/* by yours.tools - online tools website : yours.tools/zh/rc4encrypt.html */always每条命令同步、everysec每秒同步、no操作系统决定三种策略。优点数据安全性高最多丢失1秒数据,缺点文件体积大、恢复速度慢。选择建议对数据安全性要求高 → AOFeverysec。允许少量数据丢失追求恢复速度 → RDB。混合备份大量数据使用粗粒度时间上的rdb快照方式性能高恢复时间快。增量数据使用细粒度时间上的AOF日志方式尽量保证数据的不丢失。3.如何从持久化文件中恢复数据停止Redis服务。将备份文件如dump.rdb或appendonly.aof放到数据目录通过dir配置项指定。启动Redis服务自动加载文件。redis 缓存击穿、缓存雪崩如何解决缓存击穿 | 缓存雪崩某时刻大规模的key失效大量的请求打在数据库上导致数据库压力巨大在高并发的情况下数据库宕机。即使重启数据库后又会海量请求到数据库设置不同的过期时间和随机值来错开过期时间避免同一时刻大量缓存失效。4.redis 缓存数据的过期策略有哪些定期删除定期扫描所有键删除过期的数据。惰性删除每次读取数据时检查是否过期。LRU 删除内存满时删除最久未使用的数据。5.redis缓存与数据库如何保证一致性同步策略先更新数据库、再删除缓存优选同步删除可靠消息删除 适用于不强制要求数据一致性的情景 流程先更新数据库、再删除缓存如果删除失败就发可靠MQ不断重试删除缓存直到删除成功或重试5次。问题MQ多次重试失败导致长期脏数据。延时双删方案比同步删除策略一致性更高的方案。流程先删除缓存再更新数据库大约在数据库从库更新后再删一次。问题时间无法控制不能保证 在数据库从库更新后删除缓存。如果在从库更新前删除用户再在更新前查从库又把脏数据写在缓存里了。异步监听可靠消息删除很多大厂正在使用的方案。流程 更新数据库后不做操作Canal等组件监听binlog发现有更新时就发可靠MQ删除缓存如果删 除缓存失败就基于手动ack、retry等机制让消息在有限次数之内不断重试。优点异步删除性能更 高可靠消息重试机制多次删除保证删除成功。问题要求canal等binlog抓取组件高可用如果canal故 障会导致长期脏数据。6.redis 如何实现分布式锁使用 Redis 的 SETNX 命令实现分布式锁。结合过期时间防止锁死。7.redis 的高可用如何实现讲讲主从复制。主从复制一个主节点master多个从节点slave数据同步。读写分离主节点写读操作可以通过从节点分担。哨兵 Sentinel自动故障转移主节点宕机时哨兵会选举新的主节点。8.什么是 redis 的 bigkey一个 key 对应的 value 所占用的内存比较大那这个 key 就可以看作是 bigkey。String 类型的 value 超过 几十或上百 kb 已经算是 bigkey 了复合类型List、Hash、Set、Sorted Set 等的 value 包含的元素超过 5 千 到 1 万个9.redis的 bigKey如何处理分割 bigkey将一个 bigkey 分割为多个小 key。例如上万字段数量的 Hash 按照一定策略比如二次哈希拆分为多个小Hash如user#1、user#2。手动清理Redis 4.0 可以使用UNLINK命令来异步删除一个或多个指定的 key。Redis 4.0 以下可以考虑使用SCAN命令结合DEL命令来分批次删除。采用合适的数据结构例如文件二进制数据不使用 String 保存、用ZSet代替List、采用压缩算法处理。开启 lazy-free惰性删除/延迟释放lazy-free 特性是 Redis 4.0 开始引入的指的是让 Redis 采用异步方式延迟释放 key 使用的内存将该操作交给单独的子线程处理避免阻塞主线程。10.redis如何实现实现分布式锁使用SETNX命令是可以帮助我们实现互斥 , 带来的问题: 不同的服务异常死锁其他服务无法获取锁问题,若客户端获取锁后崩溃未释放锁都将导致其他客户端永远无法获取锁使用 redisson提供的分布式锁服务。RLock是其核心接口支持公平和非公平锁。加锁和解锁通过Lua脚本在Redis中执行确保原子性。公平锁利用Redis的List和ZSet实现线程的FIFO等待队列。Redisson通过watchDog机制自动续期锁防止业务执行超时导致锁过早释放同时使用Redis的发布订阅功能实现锁的释放通知只要线程一加锁成功就会启动一个watch dog看门狗的后台线程会每隔10秒检查一下如果线程一还持有锁那么就会不断的延长锁key的生存时间。因此Redisson就是使用Redisson解决了锁过期释放业务没执行完问题。11.redis的分布式模式有哪些哨兵模式和集群模式核心区别如下哨兵模式:高可用解决单点故障,单主节点无法扩展, 监控主从节点主节点宕机时选举从节点升级为主节点实现故障转移集群模式:水平扩展解决性能瓶颈,多主节点水平扩展,有16384个槽位节点分槽将数据分片存储在多个节点每个节点负责一部分槽位支持自动故障转移

相关新闻

基于chatbox火山方舟的AI辅助开发实战:从模型集成到生产环境优化

基于chatbox火山方舟的AI辅助开发实战:从模型集成到生产环境优化

在AI应用开发如火如荼的今天,很多开发者朋友都遇到过类似的困境:好不容易找到一个效果不错的模型,却卡在了“如何把它稳定、高效地集成到自己的应用里”这一步。传统的集成方案,比如自己部署一个模型服务,或者调用一些…

2026/7/5 5:59:48 阅读更多 →
AI智能客服体开发实战:从架构设计到性能优化避坑指南

AI智能客服体开发实战:从架构设计到性能优化避坑指南

在智能客服系统的开发过程中,高并发下的响应延迟和多轮对话状态管理混乱是两大核心挑战。传统的基于规则或简单模板的系统,在面对用户意图多变、上下文依赖强的场景时,往往显得力不从心,导致用户体验下降和运营成本攀升。本文将围…

2026/7/3 22:51:36 阅读更多 →
Python之affinidi-tdk-credential-issuance-client包语法、参数和实际应用案例

Python之affinidi-tdk-credential-issuance-client包语法、参数和实际应用案例

一、需求理解 全面了解 Python 包 affinidi-tdk-credential-issuance-client 的核心功能、安装方法、语法参数,同时需要 8 个可落地的实际应用案例,以及使用过程中的常见错误和注意事项。该包属于 Affinidi 可信数据工具包(TDK)的…

2026/7/6 1:13:00 阅读更多 →

最新新闻

生产级AI代理如何不迷失方向 Fable5的循环与目标系统完整拆解

生产级AI代理如何不迷失方向 Fable5的循环与目标系统完整拆解

2026年,越来越多独立开发者、AI驱动的机构和产品团队开始把核心运营工作交给模型。但现实很快打脸:模型跑着跑着就偏离目标、重复劳动、或者在第4轮后彻底忘记上周做了什么。直接扔一个大prompt给Claude或类似模型,初期看起来聪明&#xff0c…

2026/7/6 8:45:54 阅读更多 →
25-AGENTS.md最佳实践

25-AGENTS.md最佳实践

25 AGENTS.md 最佳实践 概述 前面三篇文章详细介绍了 AGENTS.md 的机制、高级用法和配置灵活性。这一篇,我们将回归到最本质的问题:怎样写出能让 AI 真正高效工作的 AGENTS.md? 本文不是理论的堆砌,而是从真实踩坑经验中提炼出来的实战规则。这些规则来自大量 AGENTS.m…

2026/7/6 8:45:54 阅读更多 →
RAG 检索优化实战:基于 Recall@5、Precision@3、NDCG@10 的 3 步调优法

RAG 检索优化实战:基于 Recall@5、Precision@3、NDCG@10 的 3 步调优法

RAG 检索优化实战:基于 Recall5、Precision3、NDCG10 的 3 步调优法在构建检索增强生成(RAG)系统时,检索模块的性能直接影响最终生成内容的质量。本文将介绍一套基于 Recall5、Precision3 和 NDCG10 指标的实用调优方法&#xff0…

2026/7/6 8:43:54 阅读更多 →
终极指南:如何使用Scarab模组管理器快速安装空洞骑士游戏模组

终极指南:如何使用Scarab模组管理器快速安装空洞骑士游戏模组

终极指南:如何使用Scarab模组管理器快速安装空洞骑士游戏模组 【免费下载链接】Scarab An installer for Hollow Knight mods written with Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 你是否曾经为了在《空洞骑士》中安装一个心仪的模组…

2026/7/6 8:43:54 阅读更多 →
终极智能BP助手:如何用Seraphine轻松实现英雄联盟自动BP与战绩分析

终极智能BP助手:如何用Seraphine轻松实现英雄联盟自动BP与战绩分析

终极智能BP助手:如何用Seraphine轻松实现英雄联盟自动BP与战绩分析 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 你是否在英雄联盟排位赛中经常因为错过接受对局而懊恼?是否在BP阶段…

2026/7/6 8:41:53 阅读更多 →
专业显卡优化工具NVIDIA Profile Inspector:解锁游戏性能的6个关键步骤

专业显卡优化工具NVIDIA Profile Inspector:解锁游戏性能的6个关键步骤

专业显卡优化工具NVIDIA Profile Inspector:解锁游戏性能的6个关键步骤 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款专业的开源显卡驱动配置工具&#xf…

2026/7/6 8:39:52 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻