qxandxt

导航

2019年3月4日 #

MYSQL如何解决幻读

摘要: 第一部分 首先要了解下mysql数据库的事务特征之一隔离级别: READ UNCOMMITTED(未提交读): 在READUNCOMMITTED级别,事务中的修改,即使没有提交,对其他事务也都是可见的。事务可以读取未提交的数据,这也被称为脏读(DirtyRead)。这个级别会导致很多问题,从性能上来 阅读全文

posted @ 2019-03-04 22:26 qxandxt 阅读(6021) 评论(1) 推荐(0) 编辑

PHP使用redis防止大并发下二次写入(如如何防止重复下订单)

摘要: php调用redis进去读写操作,大并发下会出现:读取key1,没有内容则写入内容,但是大并发下会出现同时多个php进程写入的情况,这个时候需要加一个锁,即获取锁的php进程有权限写。 思路是:设置一个锁的key,setnx是原子操作,只能一个进程写入成功,写入成功返回true(表示获取锁权限),然 阅读全文

posted @ 2019-03-04 22:13 qxandxt 阅读(1509) 评论(0) 推荐(0) 编辑

大型网站处理高并发要点技术

摘要: 核心技术点 前端优化 前端优化主要包括动态内容静态化,增加前端缓存。页面静态化是指将指含有大量动态元素的动态网页,如jsp、php等,转换为html静态页 面,静态页面由于不用加载动态元素,其访问速度要比动态页面快得多,可以增加访问速度,减小数据库压力;前端页面缓存在系统前端对Web服务器上的页面进 阅读全文

posted @ 2019-03-04 21:50 qxandxt 阅读(131) 评论(0) 推荐(0) 编辑

mysql分库分区分表

摘要: 分表: 分表分为水平分表和垂直分表。 水平分表原理: 分表策略通常是用户ID取模,如果不是整数,可以首先将其进行hash获取到整。 水平分表遇到的问题: 1. 跨表直接连接查询无法进行 2. 我们需要统计数据的时候 3. 如果数据持续增长,达到现有分表的瓶颈,需要增加分表,此时会出现数据重新排列的情 阅读全文

posted @ 2019-03-04 21:34 qxandxt 阅读(125) 评论(0) 推荐(0) 编辑

数据库设计三大范式

摘要: 数据库设计范式 什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些 规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。 什么是三大范式: 第一范式:当关系模式R的所有属性都不能在分解为更基本的数 阅读全文

posted @ 2019-03-04 21:27 qxandxt 阅读(168) 评论(0) 推荐(0) 编辑

避免商品超卖的4种方案

摘要: 原始方案(失败):在每次下订单前我们判断促销商品的数量够不够,不够不允许下订单,更改库存量时加上一个条件,只更改商品库存大于0的商品的库存,当时我们使用ab进行压力测试,当并发超过500,访问量超过2000时,还是会出现超卖现象。 public function buyOne() { $shop = 阅读全文

posted @ 2019-03-04 20:59 qxandxt 阅读(190) 评论(0) 推荐(0) 编辑

高并发架构技术|缓存失效、缓存穿透问题 PHP 代码解决

摘要: 问题描述 引起这个原因的主要因素是高并发下,我们一般设定一个缓存的过期时间时,可能有一些会设置5分钟啊,10分钟这些;并发很高时可能会出在某一个时间同时生成了很多的缓存,并且过期时间在同一时刻,这个时候就可能引发——当过期时间到后,这些缓存同时失效,请求全部转发到DB,DB可能会压力过重。 处理方法 阅读全文

posted @ 2019-03-04 11:22 qxandxt 阅读(179) 评论(0) 推荐(0) 编辑

php面向对象 封装继承多态 接口、重载、抽象类、最终类总结

摘要: 1、面向对象 封装继承多态 接口、重载、抽象类、最终类 面向对象 封装继承多态 首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1、什么是类? 具有相同属性(特征)和方法(行为)的一系列个体的集合,类是一个抽象的概念2、什么是对象?从类中拿到的具有具体属性值得个体,称为对象,对象是一个 阅读全文

posted @ 2019-03-04 10:33 qxandxt 阅读(338) 评论(0) 推荐(0) 编辑

PHP面向对象(抽象类与抽象方法、接口的实现)

摘要: 一、抽象类与抽象方法 1,任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。 2,定义为抽象的类不能被实例化。 3, 被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。 4,必须在子类中将抽象类的全部抽象方法全部实现才可以 <?php // 阅读全文

posted @ 2019-03-04 10:02 qxandxt 阅读(141) 评论(0) 推荐(0) 编辑