众所周知MySQL作为文件型数据库,在频繁操作的时候容易出现效率问题,可能会有很多操作需要排队等待,严重的时候甚至会导致数据库系统crash!而替代产品NoSQL在这方面性能很给力,尤其是被广泛使用的内存型数据库,比如Redis。而在企业应用当中Redis也确实是首先想到的解决方案,下面提供两种方案:一般在秒杀场景中,是不允许同一用户抢购相同商品的,所以我们就需要快速的保存抢拍成功的用户id方案一:使用list保存商品的可售数量提前将要秒杀商品的可售数量保存在redis中,比如商品id为9527的可售库存是5...
首页
后端技术
RESTful API 设计指南
RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。协议API与用户的通信协议,总是使用HTTPS协议。域名应该尽量将API部署在专用域名之下。https://api.example.com如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。https://example.org/api/
版本(Versioning)应该将API的版本号放入URL。https://api.example.com/v1/另一种做法是,将版本号放在HTTP头信息中,但不如放入URL方便和直观。Gi...
RESTful架构介绍以及常见设计误区
RESTful架构是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。什么是RESTful架构(1)每一个URI代表一种资源;(2)客户端和服务器之间,传递这种资源的某种表现层;(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。RESTful典型设计误区最常见的一种设计错误,就是URI包含动词。因为"资源"表示一种实体,所以应该是名词,URI不应该有动词,动词应该放在HTTP协议中。举例来说,某个URI是/posts/sho...
正则表达式简明教程,轻松学会正则表达式的使用
体验匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* ^1[3578]\d{9}$匹配中国邮政编码:[1-9]\d{5}(?!\d)如何使用正则表达式正则表达式是一种字符串模式语言,它作为其他语言的字符串出现.\d匹配一个数字字符,\D匹配一个非数字字符, \\在字符串中表示一个\.所以字符串\\d表示\d.\\D表示\D创建正则表达式对象必须创建正则表达式对象才能够使用正则表达式.创建正则表达式对象有两种方式.1.直接创建对象语法: va...
Nginx服务器的配置文件详解
nginx的配置文件结构nginx.conf由多个块组成,最外面的块是main,main包含events和http,http包含多个upstream和多个server,server又包含多个location:main(全局设置)、server(虚拟主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)。main 块设置的指令将影响其他所有设置;server 块的指令主要用于指定主机和端口,以及网站路径;upstream 指令主要用于负载均衡,设置一系列的后端服务器;...
Laravel5极验证集成库显示"正在加载验证码"解决办法
问题详情:页面只显示'正在加载验证码',控制台显示‘'The requested URL /auth/geetest was not found on this server.',经过排查发现是版本更新了,但文档没更新。解决方式把config/geetest.php中的'geetest_url' => '/auth/geetest'改为'geetest_url' => 'auth/geetest',创建提示Not Found的那条路由Route::get('auth/geetest', 'GetG...
PHP的socket实现客户端到服务端的通信
一、server.PHP服务端:<?php
error_reporting(E_ALL);
set_time_limit(0);
ob_implicit_flush();
//本地IP
$address = 'localhost';
//设置用111端口进行通信
$port = 111;
//创建SOCKET
if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
e...
常用的PHP/JS-HTML转换函数
HTML转换函数function ChangeString(str)
{
str = str_replace("<","<",str);
str = str_replace(">",">",str);
str = str_replace(" "," ",str);
str = str_repla...
MySQL5.6取消严格模式
方法一、修改my.cnf1、设置启动参数,将默认sql_mode改为宽松模式使用命令:echo "sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" >> /etc/my.cnf或手动修改:vi /etc/my.cnf找到sql-mode关键字,若没有,在文件尾添加一行替换成:sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIO2、重启MySQLservice mysqld restart方法二、...
MySQL存储位置迁移后出现1045错误解决方法
错误提示信息: mysql Access denied for user root@localhost错误代码: 1045 解决方法1, 在mysql安装目录中找到mysql.ini文件打开编辑. 在[mysqld]这一行下面下添加skip-grant-tables保存退出2, 重启mysql服务3, 在命令行中登录mysql,具体命令如下mysql -h127.0.0.1 -uroot
键入命令回车登录数据库管理,此处不需要输入密码4, 进入mysql数据库, 命令为:use mysql
5, 给root用...