返回 随笔记录
九、缓存与NoSQL
博主
大约 7 分钟
九、缓存与NoSQL
范围:Redis、MongoDB、Elasticsearch、列式存储、图数据库、时序数据库 知识点数量:212项 返回总目录
9.1 Redis
9.1.1 数据结构
- 885. String - 掌握字符串操作,理解SDS简单动态字符串
- 886. List - 掌握列表操作和阻塞操作,理解QuickList
- 887. Hash - 掌握哈希操作,理解ZipList和HashTable
- 888. Set - 掌握集合操作,理解IntSet和HashTable
- 889. ZSet - 掌握有序集合和排行榜,理解SkipList跳表
- 890. Bitmap - 掌握位图操作,理解用户签到
- 891. HyperLogLog - 掌握基数统计,理解概率数据结构
- 892. Geo - 掌握地理位置,理解GeoHash编码
- 893. Stream - 掌握消息流,理解XADD/XREAD
- 894. BitField - 掌握位域操作
9.1.2 核心功能
- 895. 过期策略 - 掌握定期删除+惰性删除
- 896. 内存淘汰 - 掌握LRU、LFU、TTL、Random、noeviction策略
- 897. 持久化(RDB) - 掌握快照,理解BGSAVE和fork
- 898. 持久化(AOF) - 掌握追加日志,理解always/everysec/no
- 899. AOF重写 - 掌握BGREWRITEAOF,理解子进程重写
- 900. 管道 - 掌握Pipeline,理解批量操作优化
- 901. 发布订阅 - 掌握Pub/Sub,理解扇出模式
- 902. 事务 - 掌握MULTI/EXEC,理解不保证原子性
- 903. Lua脚本 - 掌握原子操作,理解EVAL命令
- 904. 慢查询日志 - 掌握slowlog,理解性能分析
- 905. 大Key问题 - 掌握大Key发现和拆分
- 906. 热Key问题 - 掌握热Key发现和本地缓存
9.1.3 高可用
- 907. 主从复制 - 掌握全量和增量同步,理解复制积压缓冲区
- 908. 哨兵模式 - 掌握监控和故障转移,理解主观/客观下线
- 909. 集群模式 - 掌握16384槽,理解HashSlot分配
- 910. 数据迁移 - 掌握reshard,理解在线迁移
- 911. 脑裂问题 - 掌握min-replicas-to-write
- 912. Redis 7.0 - 掌握多线程、函数、ACL
- 913. 集群通信 - 掌握Gossip协议
- 914. 故障转移 - 掌握Sentinel选举
9.1.4 应用场景
- 915. 缓存穿透 - 掌握布隆过滤器+空值缓存
- 916. 缓存击穿 - 掌握互斥锁+逻辑过期
- 917. 缓存雪崩 - 掌握随机过期时间+多级缓存
- 918. 分布式锁 - 掌握SET NX EX和Redlock
- 919. 限流 - 掌握计数器、滑动窗口、令牌桶、漏斗
- 920. 排行榜 - 掌握ZREVRANGE
- 921. 会话共享 - 掌握Session存储
- 922. 布隆过滤器 - 掌握RedisBloom
- 923. 延时队列 - 掌握ZSET实现
- 924. 计数器 - 掌握INCR原子操作
- 925. 缓存一致性 - 掌握Cache-Aside/Read-Through/Write-Through/Write-Behind
9.2 MongoDB
9.2.1 基础操作
- 926. 文档模型 - 掌握BSON格式,理解文档限制16MB
- 927. CRUD操作 - 掌握增删改查,理解批量操作
- 928. 聚合管道 - 掌握$match/$group/$sort/$project/$unwind
- 929. 索引 - 掌握单字段、复合、多键、文本索引
- 930. 文本搜索 - 掌握$text和$score
- 931. 地理空间 - 掌握2d/2dsphere索引
- 932. 查询优化 - 掌握explain分析
- 933. 更新操作符 - 掌握$set/$push/$inc/$pull
9.2.2 高级特性
- 934. 事务 - 掌握多文档事务,理解4.0+支持
- 935. Change Stream - 掌握数据变更监听
- 936. GridFS - 掌握大文件存储,理解分块机制
- 937. 分片 - 掌握Chunk和Balancer,理解mongos
- 938. 副本集 - 掌握高可用,理解选举机制
- 939. 数据建模 - 掌握嵌入和引用,理解范式vs反范式
- 940. TTL索引 - 掌握自动过期
- 941. 视图 - 掌握只读聚合视图
- 942. WiredTiger引擎 - 掌握存储引擎,理解文档级锁
9.3 Elasticsearch
9.3.1 核心概念
- 943. 倒排索引 - 掌握Term Dictionary和Posting List
- 944. 索引管理 - 掌握Index设置,理解Shard/Replica
- 945. Mapping - 掌握字段类型,理解dynamic mapping
- 946. 分词器 - 掌握IK分词,理解Analyzer流程
- 947. 查询DSL - 掌握Query Context和评分
- 948. 过滤 - 掌握Filter Context,理解缓存
- 949. 聚合 - 掌握Bucket和Metric聚合
- 950. 相关性评分 - 掌握TF-IDF和BM25
- 951. Near Real-Time - 掌握NRT搜索,理解refresh_interval
9.3.2 集群管理
- 952. 节点角色 - 掌握Master/Data/Coordinating/Ingest
- 953. 分片分配 - 掌握Primary和Replica,理解分配策略
- 954. 集群健康 - 掌握Green/Yellow/Red
- 955. 扩容缩容 - 掌握节点管理
- 956. 脑裂防护 - 掌握discovery.seed_hosts和minimum_master_nodes
- 957. 备份恢复 - 掌握Snapshot和Repository
- 958. 索引生命周期 - 掌握ILM策略
- 959. 集群监控 - 掌握_cat API
9.3.3 应用开发
- 960. Spring Data ES - 掌握集成,理解ElasticsearchRestTemplate
- 961. 全文搜索 - 掌握match和multi_match
- 962. 高亮显示 - 掌握highlight
- 963. 拼音搜索 - 掌握pinyin插件
- 964. 近似搜索 - 掌握fuzzy和wildcard
- 965. 性能优化 - 掌握bulk和routing
- 966. Logstash - 掌握数据同步,理解Filter插件
- 967. Kibana - 掌握可视化,理解Dashboard
- 968. 同义词 - 掌握synonym过滤器
- 969. 跨集群搜索 - 掌握CCS
9.4 其他NoSQL
9.4.1 列式存储
- 970. Cassandra - 掌握宽列存储,理解LSM-Tree
- 971. HBase - 掌握分布式列存储,理解RegionServer
- 972. RowKey设计 - 掌握预分区,理解热点规避
- 973. 布隆过滤器 - 掌握过滤优化
- 974. 协处理器 - 掌握服务端计算
- 975. Compaction - 掌握合并策略
- 976. 数据模型 - 掌握Column Family设计
9.4.2 图数据库
- 977. Neo4j - 掌握属性图模型,理解节点/关系/属性
- 978. Cypher语言 - 掌握图查询语法
- 979. 图算法 - 掌握最短路径、PageRank、社区发现
- 980. 社交网络 - 掌握好友推荐
- 981. 知识图谱 - 掌握实体关系
- 982. 图遍历 - 掌握BFS/DFS优化
9.4.3 时序数据库
- 983. InfluxDB - 掌握时序数据模型,理解Measurement/Tag/Field
- 984. Prometheus - 掌握Pull模式,理解PushGateway
- 985. TDengine - 掌握国产时序库,理解超级表
- 986. 数据压缩 - 掌握Gorilla算法
- 987. 降采样 - 掌握Continuous Query
- 988. 数据保留 - 掌握Retention Policy
9.5 缓存架构设计
9.5.1 多级缓存
- 989. 本地缓存 - 掌握Caffeine/Guava,理解LRU/LFU
- 990. 分布式缓存 - 掌握Redis集群
- 991. CDN缓存 - 掌握边缘缓存
- 992. 浏览器缓存 - 掌握HTTP缓存头部
- 993. 缓存同步 - 掌握缓存一致性协议
- 994. 缓存预热 - 掌握启动加载策略
- 995. 缓存淘汰 - 掌握全局淘汰策略
9.5.2 缓存最佳实践
- 996. 缓存Key设计 - 掌握命名规范,理解前缀隔离
- 997. 缓存粒度 - 掌握粗粒度vs细粒度
- 998. 缓存监控 - 掌握命中率、延迟、内存使用
- 999. 缓存安全 - 掌握认证、加密、ACL
- 1000. 缓存降级 - 掌握缓存不可用时的降级策略
- 1001. 缓存双写 - 掌握数据库和缓存一致性
进度统计
- 领域:缓存与NoSQL
- 知识点总数:212项
- 已完成:0项
- 待完成:212项
实战项目建议
- 项目1:Redis分布式锁 - 实现可重入分布式锁,包含看门狗续期、Redlock算法
- 项目2:多级缓存系统 - 实现Caffeine+Redis两级缓存,包含一致性维护
- 项目3:搜索引擎搭建 - 使用Elasticsearch搭建商品搜索,包含分词、高亮、聚合
常见面试问题
- Redis为什么快?单线程模型如何处理高并发?
- Redis持久化RDB和AOF的区别?如何选择合适的持久化方式?
- 缓存穿透/击穿/雪崩的区别和解决方案?
- Redis集群模式如何实现数据分布?16384个槽是怎么来的?
- Elasticsearch倒排索引的原理?如何实现全文搜索?
推荐学习资源
- 书籍:《Redis设计与实现》《Elasticsearch权威指南》《MongoDB权威指南》
- 视频:极客时间《Redis核心技术与实战》《Elasticsearch核心技术与实战》
- 官方:Redis官方文档、Elasticsearch官方文档
知识点测试
读完文章了?来测试一下你对知识点的掌握程度吧!
评论区
使用 GitHub 账号登录后即可发表评论,支持 Markdown 格式。
如果评论系统无法加载,请确保:
- 您的网络可以访问 GitHub
- giscus GitHub App 已安装到仓库
- 仓库已启用 Discussions 功能