问题 词法规则: <标识符>::=<字母> <标识符>::=<标识符><字母> <标识符>::=<标识符><数字> <常量>::=<无符号整数> <无符号整数>::=&…
Redis Cluster 解决方案 基础概念 首先,分析一下主从+哨兵模式带来的问题: 在主从 + 哨兵的模式下,仍然只有一个 Master 节点,当并发请求较大时,哨兵模式不能缓解写压力 在 Sentinel 模式下,每个节点需要保存全量数据,无法进行海量数据存储 因此,在 Redis 3.0 …
持久化原理 持久化流程 Redis 是基于内存的数据库,数据存储在内存中,为了避免进程退出导致数据永久丢失,需要定期对内存中的数据以某种形式从内存呢保存到磁盘当中;当 Redis 重启时,利用持久化文件实现数据恢复。 Redis 的持久化主要有以下流程: 客户端向服务端发送写操作数据 数据库服务端接…
缓存发展史 缓存经典场景 在没有引入缓存前,为了应对大量流量,一般采用: LVS 代理 Nginx 做负载均衡 搭建 Tomcat 集群 这种方式下,随着访问量的增大,响应力越差,逐渐无法满足用户体验。 在引入缓存后: 三大经典缓存读写策略 旁路缓存模式:Cache Aside Pattern 写:…
概述 ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册,在架构上,通过冗余服务实现高可用性(CP)。 ZooKeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单…
前言 可以将某个项目或产品的架构体系按照如下方式分层: 业务层面:项目业务体系 技术层面: 数据架构:数据持久层策略 应用架构:应用层的实现方式 部署架构:部署方式,自动化持续集成等策略 针对每一层也随着时间的变化而变化。 业务架构 单体模式 早期的互联网产品多为单体系统,特点是以业务为导向,往往形…
触摸板操作 打开系统偏好设置-触控板选项查看学习常用操作 双指触控实现鼠标右键功能 建议打开轻点来点按,和 win 操作相同 系统偏好设置-辅助功能-指针控制-触控板选项-启用拖移-三指拖移:单手三指拖移文件 文本/文件操作 对于文本: 全选:command + a 复制:command + c 粘…
远古时期的签到题 原题链接 描述: 远古时期奇妙的事情...... 远古时期有一个比赛,里面有这样一道签到题: 给定一个正整数 $N$ 求这个整数转化为二进制后的数有多少位是 $0$。 输入格式: 共一行,一个正整数 $N$。 输出格式: 共一行,一个整数,表示 $N$ 转化为二进制后数位是 $0$…
31. 下一个排列 排列 原理就是 C++ 中的 next_permutation 函数,生成指定序列的下一个全排列 从给定序列的最右端开始,找到第一个满足 nums[i] < nums[i + 1] 的元素 nums[i] 若找不到这样的元素 nums[i]:说明当前序列是最后一个排列,函数…
1. 两数之和 哈希表 遍历数组,同时用 HashMap 维护已出现过的数及其下标 若当前的数 nums[i] 满足 target - nums[i] 曾经出现过,则直接返回 否则将其加入到哈希表中。 class Solution { public int[] twoSum(int[] nums, …