Consul分布式服务发现与配置管理工具
Consul 是 HashiCorp 开源的一款 分布式服务发现与配置管理工具,在微服务架构中应用广泛。主要由以下功能: 1、服务发现(Service Discovery) 服务注册:应用启动时将自己的IP、端口、健康检查等信息注册到 Consul。 服务发现:其他应用通过 Consul 查找目标付服务(类似电话簿)。 2、健康检查(Health...
Redis Lua 脚本操作教程
Redis本身支持强大的命令操作,但是在高并发场景下肯呢个存在如下问题: 原子性:多个命令组合操作可能被并发打断,Lua脚本在Redis内部执行,保证单线程原子性。 减少网络往返:多个命令一次性执行,减少客户端与Redis的多次通信。 复杂逻辑处理:Lua能写 if-else、循环,封装复杂的业务逻辑。 所以秒杀、库存扣减、分布式锁,都会大量使用到 Lua。
Nginx负载均衡配置
负载均衡时一种分布式系统设计技术,通过请求或任务均匀分配到多台服务器或服务实例上,来提高系统的并发能力、可用性和稳定性。
ESP 芯片的刷机/烧录/调试工具esptool
esptool 是一个 用 Python 编写的开源命令行工具 主要用于和 Espressif(乐鑫) 的 ESP8266、ESP32 系列芯片交互 可以通过 串口(UART) 下载固件、读写 Flash、获取芯片信息等
OV(OmniVision)系列摄像头
玩 ESP32-CAM 老款 → 选 OV2640 ESP32-S3 / 需要 3MP → 选 OV3660 要高分辨率和自动对焦 → 选 OV5640 入门学习驱动 → 选 OV7670 夜视+高速 → 选 OV7725
前缀和 概念与区间和
sumRange(left,right)=nums[left]+nums[left+1]+⋯+nums[right] = prefix[right+1]-prefix[left] 公式成立的原理就是 **前缀和的抵消**: 前缀和保存的是 **从头到某个位置的和**,两个前缀和相减,刚好抵消掉前面不需要的部分,留下的就是区间和。
LeetCode 303 区域和检索 - 数组不可变
标签:设计、数组、前缀和 给定一个整数数组 `nums`,处理以下类型的多个查询: 1. 计算索引 `left` 和 `right` (包含 `left` 和 `right`)之间的 `nums` 元素的 **和** ,其中 `left <= right` 实现 `NumArray` 类: - `NumArray(int[] nums)` 使用数组...
LeetCode 011 盛最多水的容器
给定一个长度为 `n` 的证书数组 `height`。有 `n` 条垂线,第 `i` 条线的两个端点是`(i, 0)`和`(i, height)`。 找出其中的两条线,是的他们与 `x` 轴共同构成的容器可以容纳最多的水。 返回容器可以存储的最大水量。 **说明**:你不能倾斜容器。
LeetCode 015 三数之和
标签:数组、双指针、排序 给你一个整数数组 `nums`,判断是否存在三元组 `[nums[i], nums[j], nums[k]]`满足 `i != j`、`i != k` 且 `j != k`,同时还满足 `nums[i] + nums[j] + nums[k] == 0`。请你返回所有和为 `0` 且不重复的三元组。...
LeetCode 283 移动零
给定一个数组 `nums`,编写一个函数将所有 `0` 移动到数组末尾,同时保持非零元素的相对顺序。 **请注意**,必须在不复制数组的情况下原地对数组进行操作。
LeetCode 128 最长连续序列
给定一个未排序的整数数组 `nums`,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 0(n) 的算法解决此问题。
LeetCode 049 字母异位分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回列表。 示例1: 输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]
LeetCode 001 两数之和
知识点:数组、哈希表 给定一个整数数组 `nums` 和一个整数目标值 `target`,请你再该数组中找出 **和为目标值** `target` 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次想同的元素。 你可以按任意顺序返回答案。
Python 上下文管理器与with语句详解
上下文管理器(Context Manager) 是一种实现了特定协议的对象,能够在进入上下文和退出上下文时执行一些操作。 在 Python 中,只要一个对象实现了下面两个方法: __enter__(self):进入上下文时调用。 __exit__(self, exc_type, exc_val,...
Python 设计模式之策略模式
策略模式(Strategy Pattern)是一种行为设计模式,定义一系列可互换的算法,把它们各自封装起来,并使它们可以相互替换,而不影响客户端的使用。 通俗讲: 有多个可选策略(算法),可以按需选择并动态切换。 客户端不关心用的是哪种策略,只要遵守接口就能用。