PHP1688
是卢比
慕盖茨8737730
沧海一声笑哈哈
要做一定的防止二次的工作
沧海一声笑哈哈
conRedis使用了单例模式,为了不重复创建redis连接,所以$redisObj要用静态变量。
至于其他地方用静态变量,应该是个人编码习惯吧。
热_血
慕斯0479593
慕粉3988021
Redis中总库存吗?list也可以实现,但是你得导入数据,较麻烦
慕粉3988021
还是PHP操作Redis,执行的是Redis的eval命令,这个命令传入的字符串是lua代码,可以在Redis服务器执行这段lua代码。
王云阳
仔细听,强调了需要有订单超时处理机制,避免占用库存长时间不支付的场景出现。而且之所以选择第三个方案原因为对比第一个方案,创建订单等写库耗时操作可以异步化,性能更占优势。
慕标6605117
同学你好, 只是示例代码,不能直接用于生产环境
只有拼搏才能成就自己
apcu只是其中一种本地缓存的方案,本地缓存还可以通过在本地安装redis来实现。
opcache 和 apcu 冲突的指的是什么冲突呢?
secrethaha
这个其实是个高空用的问题,属于运维层面要解决的事情,一般redis不是直连,而是通过vip连接到proxy,proxy再根究切片配置转发到redis实例,每个redis实例是一主多从,读写都在主,主挂了之后会自动通过raft算法选举出一个新的主,用于确保服务的高可用。市面上有比较成熟的解决方案,如codis,可以了解下。
qq_深都_03155654
同学你好,lua语法相对简单些,可以网上找点教程看看就行,书籍的话 《Lua程序设计》,如果想深入研究还可以找找 源码分析的书籍看看
qq_深都_03155654
同学你好,你的思路不错,可以继续去想下直接incrby改会有什么问题,老师提供的思路只是其中一个方案,真正场景实现肯定会有非常多的方案,需要大家自己思考。
redis->eval本身就是执行lua脚本,redis->incrby理论上也可以防止边界条件的发生,不会造成超卖,因为incrby就实现了查询+修改的原子操作,但是有一点点小缺点就是,不能做到只要一超卖了就直接终止+1。
sunflower_boy
同学你好,具体哪听不懂可以反馈给我,我后续慢慢优化。lua一门脚本语言,是一门短小精悍的语言,代码量非常少,可以嵌入到任何一门C开发的工具中,因此在nginx、redis中都有应用,可以快速的扩展nginx与redis这两个工具的功能。
zhuiying
同学你好,代码放在这了,https://github.com/huangtao1990/seckill 。
谢谢支持。
究极大混子
同学您好,演示里面的代码,没有做自动加载的功能,所以需要手工显示加载文件,否则继承就找不到对应类。swoole你可以参照我课程里的思路去写代码,我没有写相关的代码。
碰磁王110
同学您好,目前还没有上传源码,等上传了我同步给你