关于本站

小谈博客是一个关注 WEB 开发的技术博客,对现代化的 PHP 开发比较感兴趣,包含 WEB 开发的方方面面,如 PHP,MySQL,Redis,Linux,服务器,前端等。

本博客采用 WordPress 驱动,运行在阿里云 CentOS 7 系统上, 主机配置 1G 内存, 1 核 CPU, 1M 带宽,网站环境: PHP 7 , PHP-FPM,Nginx 1.8,Redis 3.0,MaiaDB 10.1,进行了一些简单的性能调优,如Nginx配置, MariaDB配置参数的优化等,另外图片,js,css等静态资源开启了CDN.

数据库UNSIGNED属性

数据库unsigned属性
unsigned一般是无符号的意思,比如unsigned int就是无符号整数的意思,一般有符号数的最高位是符号位,表示数据的正负,不表示大小,而无符号数的最高位是表示数据的大小,这样无符号数表示的数据范围要比有符号数大一倍

这里的id一般表示序号,所以设置为unsigned属性,这样的设计更科学合理。

数据库字段类型Enum(枚举)和Set(集合)的区别(转)

Enum枚举,Set集合。

ENUM和SET都是比较特殊的字符串数据列类型,它们的取值范围是一个预先定义好的列表。ENUM或SET数据列的取值只能从这个列表中进行选择。ENUM和SET的主要区别是:

ENUM只能取单值,它的数据列表是一个枚举集合。它的合法取值列表最多允许有65535个成员。例如:ENUM(“N”,”Y”)表示,该数据列的取值要么是”Y”,要么就是”N”。

SET可取多值。它的合法取值列表最多允许有64个成员。空字符串也是一个合法的SET值。
继续阅读“数据库字段类型Enum(枚举)和Set(集合)的区别(转)”

json和xml比较

两者的共同优点是都是文本表示的数据格式,可以跨平台、跨系统交换数据。

可读性和可扩展性而言,JSON和XML不相上下。

编码难度而言,JSON略比XML简单,要写好XML最好还是借助XML编辑器,标签的嵌套和配对手动输入来说容易出错。因此,从代码的可维护性角度而言,JSON优于XML。

继续阅读“json和xml比较”

进程和作业的区别

  Linux系统上所有运行的任务都可以称之为一个进程,每个用户任务、每个系统管理守护进程,也都可以称之为进程。Linux用分时管理方法使所有的任务共同分享系统资源。我们所关心的是如何去控制这些进程,让它们能够很好地为用户服务。

  进程的一个比较正式的定义是:在自身的虚拟地址空间运行的一个单独的程序。进程与程序是有区别的,进程不是程序,虽然它由程序产生。程序只是一个静态的命令集合,不占系统的运行资源;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序可以启动多个进程。
继续阅读“进程和作业的区别”

PV原语实现进程同步和互斥的原理实例

PV原语的含义

P操作和V操作是不可中断的程序段,称为原语。PV原语及信号量的概念都是由荷兰科学家E.W.Dijkstra提出的。信号量sem是一整数,sem大于等于零时代表可供并发进程使用的资源实体数,但sem小于零时则表示正在等待使用临界区的进程数。

P原语操作的动作是:
(1)sem减1;
(2)若sem减1后仍大于或等于零,则进程继续执行;
(3)若sem减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。
继续阅读“PV原语实现进程同步和互斥的原理实例”