- 博客(14)
- 收藏
- 关注
原创 Redis+Lua秒杀实战:彻底解决库存超卖
在秒杀系统中,库存超卖是一个常见问题:当多个用户同时抢购同一商品时,如果库存扣减操作未正确同步,可能导致库存数量减少到负数(例如,库存为1时,两个用户同时购买成功)。通过 Redis + Lua 脚本,您可以高效解决秒杀系统中的库存超卖问题:Lua 脚本提供原子性操作,确保库存扣减逻辑(检查-扣减)不被中断,从而维持 $stock \geq 0$。脚本执行是原子的,确保在高并发下不会超卖。Lua 脚本在 Redis 中执行时,是原子性的:整个脚本作为一个整体运行,不会被其他命令中断,避免了并发竞争。
2025-09-28 05:21:17
1104
原创 Rust vs Node.js:Wasm性能实战
执行时间:$t_{\text{wasm}}$(Wasm模块时间) vs $t_{\text{js}}$(纯JavaScript时间)。公式化表示平均时间:$$\bar{t} = \frac{1}{N} \sum_{i=1}^{N} t_i$$,其中$N$为运行次数。Wasm版本通常更快:$t_{\text{wasm}} < t_{\text{js}}$,因为Wasm编译优化减少了解释开销。斐波那契数列定义:$F(n) = F(n-1) + F(n-2)$,其中$F(0) = 0$,$F(1) = 1$。
2025-09-19 05:58:39
896
原创 2025量子算法实战:突破计算新边界
主流方向包括变分量子算法(VQE、QAOA)、量子机器学习(QML)及量子优化算法,重点解决NISQ(含噪声中等规模量子)设备实际应用问题。梯度计算使用参数偏移规则:$\nabla_\theta f(\theta)=[f(\theta+\pi/2)-f(\theta-\pi/2)]/2$核函数设计:$K(x_i,x_j)=|\langle \phi(x_i)|\phi(x_j)\rangle|^2$采用带参数化旋转门($R_X(\theta)$、$R_Y(\phi)$)的量子层。
2025-09-16 13:26:58
283
原创 技术Leader进阶:从代码到战略的跨越
案例:微服务拆分需考虑团队能力、监控成本、长期维护性,而非单纯追求技术先进性。主导技术债务治理,推动团队效率提升(如自动化测试覆盖率从30%到80%)。建立技术决策框架(如评估矩阵),量化业务需求与技术方案的匹配度。应对:用可视化工具(如架构决策记录ADR)阐明技术选择逻辑。将技术路线与业务目标对齐(如通过低代码平台支撑快速试错)。用数据证明技术决策的价值(如性能提升对业务转化的影响)。建立技术健康度指标(如平均构建失败率、线上缺陷密度)。应对:建立技术雷达机制,定期评估新技术成熟度。
2025-09-08 23:57:05
136
原创 Python最佳做法和代码规范
要了解所有的最佳做法,请参阅 PEP8 指南。你可以使用 atom 软件包 linter-python-pep8 在 Atom 文本编辑器中自己的编程环境中使用 pep8
2025-09-05 23:34:10
269
转载 Zip 和 Enumerate
zip 和 enumerate 是实用的内置函数,可以在处理循环时用到。Zipzip 返回一个将多个可迭代对象组合成一个元组序列的迭代器。每个元组都包含所有可迭代对象中该位置的元素。例如,list(zip(['a', 'b', 'c'], [1, 2, 3])) 将输出 [('a', 1), ('b', 2), ('c', 3)].正如 range() 一样,我们需要将其转换为列表...
2018-11-02 17:08:31
781
转载 While 循环
For 循环是一种“有限迭代”,意味着循环主体将运行预定义的次数。这与“无限迭代”循环不同,无限迭代循环是指循环重复未知次数,并在满足某个条件时结束,while 循环正是这种情况。下面是一个 while 循环的示例。card_deck = [4, 11, 8, 5, 13, 2, 8, 10]hand = []# adds the last element of the card_de...
2018-11-01 20:25:41
385
转载 For 循环
Python 有两种类型的循环:for 循环和 while 循环。for 循环用来遍历可迭代对象。可迭代对象是每次可以返回其中一个元素的对象,包括字符串、列表和元组等序列类型,以及字典和文件等非序列类型。你还可以使用迭代器和生成器定义可迭代对象,我们将在这门课程的稍后阶段详细了解迭代器和生成器。我们来了解下 for 循环的各个组成部分。请看下面的示例:# iterable of ci...
2018-11-01 20:12:18
263
原创 if中的真假值
如果我们在if 语句中使用非布尔对象代替布尔表达式,Python 将检查其真假值,判断是否运行缩进代码。默认情况下,Python 中对象的真假值被视为 True,除非在文档中被指定为 False。以下是在 Python 中被视为 False 的大多数内置对象:定义为 false 的常量:None 和 False 任何数字类型的零:0、0.0、0j、Decimal(0)、Fraction(...
2018-11-01 20:03:01
2280
原创 字典和恒等运算符
字典字典是可变数据类型,其中存储的是唯一键到值的映射。下面是存储元素和相应原子序数的字典。elements = {"hydrogen": 1, "helium": 2, "carbon": 6}字典的键可以是任何不可变类型,例如整数或元组,而不仅仅是字符串。甚至每个键都不一定要是相同的类型!我们可以使用方返回默认值的 get字典有一个也很有用的相关方法,叫做 get。...
2018-11-01 19:08:20
366
原创 布尔型运算符、比较运算符和逻辑运算符
布尔型运算符、比较运算符和逻辑运算符布尔数据类型存储的是值 True 或 False,通常分别表示为 1 或 0。通常有 6 个比较运算符会获得布尔值:比较运算符符号使用情况 布尔型 运算符 5 < 3 False 小于 5 > 3 True 大于 3 <= 3 True 小于或等于 3 >= ...
2018-11-01 17:50:50
7875
转载 关于浮点数的讲解
数值数据在机内的表示 在选择计算机的数值数的表示方式时,需要考虑以下几个因素:(1)要表示的数的类型(小数、整数、实数和复数);(2)可能遇到的数值范围;(3)数值精确度;(4)数据存储和处理所需要的硬件代价。 2.1.1.1 定点数与浮点数 计算机处理的数值数据多数带有小数,小数点在计算机中通常有两种表示方法,一种是约定所有数值数据的小数点隐含在某一个固定位置上,称为定...
2018-11-01 17:37:14
3209
原创 Python变量赋值及命名规则
x = 3y = 4z = 5以及x, y, z = 3, 4, 5但是,在大多数情况下,上面的表达式并不是很好的赋值方式,因为变量名称应该要能够描述所存储的值。 除了要设定具有描述性的变量名称之外,在 Python 中命名变量时,还需要注意以下几个事项:1. 只能在变量名称中使用常规字母、数字和下划线。不能包含空格,并且需要以字母或下划线开头。2. 不能使...
2018-11-01 17:13:43
7266
转载 取模运算和取余运算
对于整型数a,b来说,取模运算或者求余运算的方法都是:1.求整数商: c = a/b;2.计算模或者余数: r = a - c*b. 求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0方向舍入(fix()函数);而取模运算在计算c的值时,向-∞方向舍入(floor()函数)。例如:计算-7 Mod 4那么:a = -7;b = 4;第一步:求整数商c,如进行求...
2018-11-01 16:55:27
18575
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅