08 2018 档案
摘要:1、协议 尽量使用 HTTPS 2、’域名 尽量将API部署在专用域名之下 如果API很简单,不会有进一步扩展,可以考虑放在主域名下 3、版本 应该将版本放在URL中 ,例如 https://api.xxx.com/v1 4、路径 每个网址,就是一种资源,所以不能有动词,只能有名词 5、HTTP动词
阅读全文
摘要:装饰者模式是在开放 关闭原则下实现动态添加或减少功能的一种方式。 装饰者模式 就是不修改原类代码和继承的情况下动态扩展类的功能,传统的编程模式都是子类继承父类实现方法重载,使用装饰器模式,只需要加一个新的装饰器对象,更加灵活,避免数量和层次过多。 以laravel 为例子,在解析请求生成响应之前,或
阅读全文
摘要:Redis提供了RDB持久化和AOF持久化 RDB机制的优势和策略 RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘。 也是默认的持久化方式,这种方式就是讲内存中的数据以快照的方式写入到二进制文件中,默认的文件文件名为dump.rdb。 可以通过配置设置自动做快照持久化的方式。我们可以
阅读全文
摘要:三年前,有使用file_get_contents 获取大量数据时(zabbix)导致程序崩溃,排查原因的时候,发现是因为file_get_contents没有做超时限制,导致一些请求因为网络不稳定,卡死在那边。 中间查找资料,发现curl应该是更优选择,所以改用了curl。 1、fopen/file
阅读全文
摘要:1、String(字符串类型) key value 类型 最大能存储512M 2、Hash(哈希) 十分适合存储对象类数据 3、List(列表) 4、Set(集合) 是通过哈希表实现的,所以添加,删除,查找的复杂度都是0(1) 使用场景:1、共同好友、二度好友;2、利用唯一性,可以统计访问网站的所有
阅读全文
摘要:类型 1、B-Tree索引 2、hash索引 3、空降数据索引 4、全文索引 优缺点: 1、大大减少服务器需要扫描的数据量 2、索引可以帮助服务器避免排序和临时表 3、索引可以将随机I/O变为顺序I/O 高性能索引策略 1、独立的列 2、前缀索引和索引选择性 alter table xxx add
阅读全文
摘要:计算器表,在web应用中很常见,可以用这种表缓存一个用户的朋友数、文件下载次数等。 创建一张独立的表存储计数器通常是个好主意。 下面介绍下,应该如何设计这种表。
阅读全文
摘要:1、更小的通常更好; 2、简单的就好 3、尽量避免使用NULL,为什么呢?对mysql来说,更难优化;跟多的存储空间,当可为NULL的被索引,每个索引记录需要一个额外的字节。但是通常,把可为NULL的列改成NOT NULL代理的性能提升比较小。但是如果你要在这一列上建索引,就应该尽量避免成为NULL
阅读全文
摘要:线上一个例子,今天刚处理的问题,老的phpcms系统,在apache上使用正常,在ng上需要进行重写 http://xxx.xxx.xxx/news/index.php/admin/index/login 重写之后 location ~ /news/index.php/ { rewrite ^(.*
阅读全文
摘要:作为开发人员,需要了解其实现过程。当然,如果有充裕的世界,也可以自己尝试这写写脚本,做一些简单的基础测试。 数据库测试,分为两类,一种是集成式测试,通常我们比较熟悉的,常用的有ab测试工具,http_load测试工具,JMeter 另外一类是单组件式测试工具,mysqlsalp sql-bench
阅读全文
摘要:今天拿到一份老古董代码,mysql的连接还是使用mysql_connect。 为了方便以后部署使用,决定改造成mysqli连接,我使用了mysqli全局替换mysql的方式。 需要注意的点,我列出来,下次如果碰到这类问题,可以回过头来查询; 1、mysql_query 的查询方式是
阅读全文
摘要:出于安全方面的考虑,需要将数据库迁移到阿里云rds 情况如下:业务服务数据迁移顺利完成;但是在迁移中转站点的时候,php报错:
阅读全文
摘要:1、MySQL 逻辑架构,上层客户端 》连接/线程处理 》解析器 》优化器 》存储引擎,解析器如果有生成查询缓存,那么连接/线程处理也有可能直接到查询缓存,返回结果,图如下 2、并发控制,读写锁,共享锁,排他锁,锁粒度(表锁 table lock 行级锁 row lock) 3、事务 :原子性,一致
阅读全文
摘要:1、我之前使用过的方法:用int型,精确到分,保存进去,显示的时候,再缩小100倍即可; 2、用decimal(10,2)类型,这个意思,你总共可以有10个小数位数,2表示你可以保存小数点后两位; 但是注意一点,你使用decimal之后,在PHP的浮点数相加时,是不准确的,一定要注意,这是解释型语言
阅读全文
摘要:1、workman起进程的方式很简单,一个new Worker 是一个守护进程,子进程可以根据自己的需要启用。例子如下: $lCreate = new Worker();$lCreate->count = 1;$lCreate->name = 'lCreate';$lCreate->onWorker
阅读全文
摘要:解压zip命令:unzip 1.zip 压缩zip命令:zip -r 1.zip 1.txt
阅读全文
摘要:tar命令详解 -c:建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。一般常用的是-c建立压缩档案,-x解压 -z:有gzip属性的 -j:有bz2属性的 -Z:
阅读全文
摘要:这里就介绍我自己用的方法,简单粗暴 打开这个文件,vi /usr/local/redis/etc/redis.conf 全文搜索,requirepass foobared,用你需要的密码替换掉foobared,然后重启redis,就可以了。 附:redis启停命令 /etc/init.d/redis
阅读全文
摘要:我是在lnmp安装的时候,利用lnmp中的addons.sh脚本,一键安装redis,安装成功之后,默认是启动的,启用端口不作修改的话,是默认6379。 如果无法使用,请别急,不管碰到什么错误,都先不管,直接重启下服务器(reboot),再去试,一般都能解决redis 常用命令如下。 /etc/in
阅读全文
摘要:1、一键安装完成lnmp之后, 2、最重要的一点,当时这个问题,我折腾了三天 在/usr/local/nginx/conf/fastcgi.conf中添加可以访问上层文件,并指定项目文件fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_roo
阅读全文

浙公网安备 33010602011771号