
no sql 缓存
文章平均质量分 95
介绍常用的nosql 组件,redis,MongoDB等
一白丁
道阻且长,行则将至
展开
-
聊聊MongoDB(二):MongoDB的集群高可用
MongoDB的集群高可用前言MongoDB主从复制架构原理和缺陷复制集replica sets什么是复制集为什么要使用复制集复制集集群架构原理复制集搭建复制集成员的配置参数分片集群 Shard Cluster分片集群的搭建过程MongoDB安全认证安全认证概述用户相关操作角色单机安全认证实现流程分片集群安全认证总结前言本节主要介绍下MongoDB的高可用集群如何搭建MongoDB主从复制架构原理和缺陷master-slave架构中master节点负责数据的读写,slave没有写入权限只负责读取数据原创 2021-01-07 10:25:55 · 767 阅读 · 0 评论 -
聊聊MongoDB(一):MongoDB体系结构与底层原理
MongoDB体系结构与底层原理前言MongoDB体系结构NoSQL 和 MongoDBMongoDB 和RDBMS(关系型数据库)对比什么是BSONBSON在MongoDB中的使用MongoDB索引Index索引类型MongoDB 索引底层实现原理分析MongoDB架构MongoDB逻辑结构MongoDB的数据模型描述数据模型如何选择数据模型MongoDB 存储引擎存储引擎概述WiredTiger存储引擎优势WiredTiger引擎包含的文件和作用WiredTiger存储引擎实现原理写请求checkpoi原创 2021-01-07 09:28:54 · 17001 阅读 · 4 评论 -
从零开始Redis(十):Redis面试汇总
Redis面试汇总前言缓存问题缓存穿透缓存雪崩缓存击穿数据不一致数据并发竞争Hot KeyBig Key分布式锁watchsetnx本质分析分布式锁特性分布式锁的实际应用Zookeeper分布式锁的对比总结前言本节不再探讨redis的技术技术,而是从相关的面试题谈谈一些对应的解决方案缓存问题缓存穿透一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。缓存穿透是指在高并发下查询key不存在的数据,会穿过缓存查询数据库。导致数据库压力过大而宕机解原创 2021-01-07 08:38:47 · 178 阅读 · 1 评论 -
从零开始Redis(九):Redis分区
Redis分区前言分区分区的意义分区的方式范围分区hash分区client端分区proxy端分区部署架构集群搭建分片原理实例之间槽位同步扩容&自动均衡优点&缺点官方cluster分区部署架构RedisCluster的优势集群搭建分片客户端路由迁移扩容缩容容灾(failover)故障检测从节点选举变更通知主从切换副本漂移总结前言本节将介绍redis的分区。分区分区是将数据分布在多个Redis实例(Redis主机)上,以至于每个实例只包含一部分数据分区的意义性能的提升单机Redi原创 2021-01-06 20:15:09 · 1113 阅读 · 0 评论 -
从零开始Redis(八):Redis主从与哨兵
Redis主从与哨兵前言主从复制主从配置作用原理与实现复制流程哨兵模式部署方案搭建配置执行流程启动并初始化Sentinel获取主服务器信息获取从服务器信息向主服务器和从服务器发送消息(以订阅的方式)接收来自主服务器和从服务器的频道信息检测主观下线状态检查客观下线状态选举Leader Sentinel哨兵leader选举RaftSentinel的leader选举流程故障转移主服务器的选择总结前言本节将介绍redis集群的主从模式与哨兵模式“高可用性”(High Availability)通常来描述一个系原创 2021-01-06 18:50:30 · 154 阅读 · 0 评论 -
从零开始Redis(七):Redis事务与扩展
Redis事务与扩展前言Redis事务事务命令事务机制事务的执行Watch的执行Redis的弱事务性Redis其它扩展功能发布与订阅发布订阅的机制使用场景Lua脚本管道(pipeline),事务和脚本(lua)三者的区别慢查询日志慢查询设置慢查询定位&处理监视器Redis监控平台总结前言本节主要介绍一下redis的事务和一些扩展功能Redis事务所谓事务(Transaction) ,是指作为单个逻辑工作单元执行的一系列操作事务的四个特性ACIDAtomicity(原子性):构成事务的的原创 2021-01-06 17:05:11 · 178 阅读 · 0 评论 -
从零开始Redis(七):Redis持久化
Redis持久化前言RDB触发快照的方式配置参数定期执行命令显式触发RDB执行流程(原理)RDB文件结构RDB的优缺点AOFAOF持久化实现AOF原理命令传播缓存追加文件写入和保存AOF 保存模式不保存每一秒钟保存一次每执行一个命令保存一次AOF重写、触发方式、混合持久化触发方式混合持久化AOF文件的载入与数据还原RDB与AOF对比应用场景总结前言本节将主要介绍redis的持久化机制首先读者要知道为什么要持久化?Redis是内存数据库,宕机后数据会消失。Redis重启后快速恢复数据,要提供持久化机原创 2021-01-06 16:25:12 · 129 阅读 · 0 评论 -
从零开始Redis(六):事件处理机制
事件处理机制简介文件事件socketReactor4种IO多路复用模型与选择selectpollepollkqueue文件事件分派器事件处理器时间事件serverCron定时事件周期性事件aeEventLoop初始化stop文件事件: events, fired, apidata时间事件: timeEventHead, beforesleep, aftersleep总结简介本节介绍下redis的事件处理机制Redis服务器是典型的事件驱动系统。MVC : java 上层调下层事件驱动: jsRe原创 2021-01-06 15:49:59 · 485 阅读 · 0 评论 -
从零开始Redis(五):通讯协议
通讯协议前言通信协议请求响应模式串行的请求响应模式(ping-pong)双工的请求响应模式(pipeline)其它响应模式请求数据格式内联格式规范格式(redis-cli)命令处理流程协议响应格式协议解析及处理协议解析协议执行总结前言本节将介绍一下redis的通信协议通信协议Redis是单进程单线程的。应用系统和Redis通过Redis协议(RESP)进行交互。请求响应模式Redis协议位于TCP层之上,即客户端和Redis实例保持双工的连接。串行的请求响应模式(ping-pong)串行原创 2021-01-06 15:04:21 · 380 阅读 · 0 评论 -
从零开始Redis(四):缓存过期和淘汰策略
缓存过期和淘汰策略前言maxmemoryexpire数据结构expire原理删除策略定时删除惰性删除主动删除LRURedis的LRU 数据淘汰机制LFUrandomttlnoenviction缓存淘汰策略的选择总结前言上节深入介绍了redis的底层数据机构,本节将着重介绍redis的缓存过期和淘汰策略。Redis性能高,官方数据显示:读:110000次/s写:81000次/s长期使用,key会不断增加,Redis作为缓存使用,物理内存也会满内存与硬盘交换(swap) 虚拟内存 ,频繁IO 性能原创 2021-01-06 14:35:56 · 214 阅读 · 1 评论 -
从零开始Redis(三):底层数据结构
redis命令的拓展应用简介String简介上一节中笔者提到了redis的五种存储结构以及一些常用的基础命令,这一节是对上一节的补充和扩展。String笔者介绍过string可以存储字符串,也可以存储整型,浮点型数据。redis对于存储的数据会进行解析,识别成对应的类型。...原创 2021-01-06 12:35:51 · 232 阅读 · 0 评论 -
缓存原理&设计
缓存原理&设计前言缓存基本思想缓存的使用场景DB缓存,减轻服务器压力提高系统响应做Session分离做分布式锁(Redis)做乐观锁(Redis)什么是缓存?大型网站中缓存的使用常见缓存的分类客户端缓存页面缓存浏览器缓存APP缓存网络端缓存Web代理缓存边缘缓存服务端缓存数据库级缓存平台级缓存应用级缓存缓存的优势、代价使用缓存的优势提升用户体验减轻服务器压力提升系统性能使用缓存的代价额外的硬件支出高并发缓存失效缓存与数据库数据同步缓存并发竞争缓存的读写模式Cache Aside Pattern(常用原创 2021-01-06 10:08:14 · 266 阅读 · 0 评论 -
从零开始Redis(二):探寻redis的五种存储结构
从零开始Redis(二)简介stringgetsetdellistlindexlrangelpush,rpushlpop ,rpopsetsaddsmemberssismembersremhashhgethgetallhsethdelzsetzaddzrangezrangebyscorezrem总结这一节笔者将介绍redis的五种存储结构简介redis一共有五种存储结构,分别为string(...原创 2019-09-23 19:32:22 · 359 阅读 · 0 评论 -
从零开始Redis(一):本地搭建redis
从零开始Redis(一)Redis简介Redis的安装Redis相信大多读者都不陌生,即使没用过也都听过。虽然笔者项目上是用到了redis,但当时只是简单了解,并未深入和掌握redis,所以笔者利用业余时间来充电,故记下此笔记。Redis简介Redis是一个开源的基于内存的no-sql(非关系型)数据库,使用 ANSI C语言编写,支持 strings, hashes, lists, set...原创 2019-09-23 14:59:26 · 1811 阅读 · 0 评论