PHP高并发抢购系统设计

内容 并发抢购系统注意事项 高并发架构设计描述 程序端核心代码实现 订单流程mysql 端并发解决方案
阅读全文

mysql处理高并发,防止库存超卖

其实mysql处理高并发,防止库存超卖的问题,在去年的时候,王总已经提过;但是很可惜,即使当时大家都听懂了,但是在现实开发中,还是没这方面的意识。今天就我的一些理解,整理一下这个问题,并希望以后这样的课程能多点。先来就库存超卖的问题作描述:一般电子商务网站都会遇到如团购、秒杀、特价之类的活动,而这样的活动有一个共同的特点就是访问量激增、上千甚至上万人抢购 一个商品。然而,作为活动商品,库存肯定是很
阅读全文

MySQL集群搭建详解

MySQL Cluster 是MySQL 适合于分布式计算环境的高实用、可拓展、高性能、高冗余版本,其研发设计的初衷就是要满足许多行业里的最严酷应用要求,这些应用中经常要求数据库运行的可靠性要达到99.999%。MySQL Cluster允许在无共享的系统中部署“内存中”数据库集群,通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点
阅读全文

实例:Tag 标签

在社交网站中用户都可以为自己设置的兴趣标签,后台就可以给标记相同标签的人互推好友,或者向某一批相同标签的人发起活动。设置标签 public function setTags($user_id) {     $redis = new \Redis();     
阅读全文

实例:分布式锁

当程序的访问量大到一定程度之后我们通常会采用分布式架构,使用多台应用程序服务器来运行代码,之前文章我们已经介绍过在分布式架构下如何使用独立存储 SESSION。在高并发的情况下还有一种情况很常见,尤其是在多进程,多线程的情况下使用独立 Redis 服务器时,当某个时间缓存不存在,请求量又很大的时候,大量请求涌向数据库,导致数据库崩溃。这时我们可以使用分布式锁来解决问题。
阅读全文

实例:抽奖

实例:抽奖本文使用 Redis 的集合数据结构制作定期开奖,并不是即时开奖。形式类似微博转发抽奖。建立待抽奖名单待抽奖名单可以一次性建立,也可以对符合条件的及时创建待抽奖名单。本文采用一次性建立,和即时创建用法一致都是通过 sAdd 实现<?php $redis = new \Redis(); $redis->connect('127.0.0.
阅读全文

缓存踩过的坑,穿透的解决方案

今天讲的这个话题,我相信是众多工程师和团队的痛。从我刚开始工作,那时候构建本地缓存,到后续memcache, Redis的出现,到现在各种分布式集群的缓存,例如redis Cluster等产品的出现,缓存越来越发达和复杂了,缓存对我们的系统也越发重要,现在很难相信一个后端服务里没有缓存的存在。在这篇文章里,我会和大家分享一下过去踩到的缓存坑,然后试图给出一些解决方案,大家可以一起讨论,最终拿出更好
阅读全文

实例:限制访问次数

实例:限制访问次数上文我们演示了每分钟只允许访问一次,接下来我们演示一下共允许调用1000次,常见业务场景如快递信息调取接口,接口是付费的。比如100元可以查询1000次。共允许调用1000次 public function somthing($user_id) {     $redis = new&nb
阅读全文

实例:限时访问

实例:限时访问在接口开发工作中很常见的限时访问功能,每个用户每分钟只允许调用一次接口。或者论坛中,每个用户五分钟之内只能提交一次评论。本章我们就来实现一个简单的限时访问,每个用户每分钟只允许调用一次接口。在高并发的项目中,通常我们不会用业务层代码来处理限时访问,更常见的是用 Nginx + Lua + Redis 来实现限时访问。每分钟只允许调用一次接口public function&n
阅读全文

php类最佳自动加载及原理

在php5以前,我们要用某个类或类的方法,那必须include或者require,之后才能使用,每次用一个类,都需要写一条include,麻烦php作者想简单点,最好能引用一个类时,如果当前没有include进来,系统能自动去找到该类,自动引进~php的自动加载未定义类过程:1. 检查是否注册autoload_func2. 如果没有注册autoload_func,则检查是否定义了__autoloa
阅读全文
首页 12345 末页 共 2096 条记录