- 博客(40)
- 收藏
- 关注
原创 Mysql数据的架构
#####数据库架构设计思路1.可用性2.读性能3.一致性4.扩展性先说说一般互联网公司数据服务器的演化(1)单机时代(2)主从分离 (3) 分布式##### 1.可用性如何保证数据的可用性?---> 冗余冗余读库:一般互联网公司的mysql架构一主(写)多从 (读)写还是单点,不能保证写高可用。>冗余读库带来的副作用?读写有延时,可能不一致那么如...
2019-03-20 10:14:42
184
原创 Laravel 5.4 路由
所有 Laravel 路由都定义在位于 routes 目录下的路由文件中,这些文件通过框架自动加载。routes/web.php 文件定义了web界面的路由,这些路由被分配了web中间件组,从而可以提供session和csrf防护等功能。1.基本路由Route::get('user1', function () { return 'Hello World';});Rout...
2018-10-10 09:17:34
639
原创 Yii使用redis秒杀系统架构设计实例(未完成)
一.安装redis 1. brew install redis brew安装redis,centos可以yum安装 2. redis 配置文件的位置 redis /usr/local/etc/redis.conf 3. 开启redis服务端 redis-server 4. 测试redis server是否启动 redis-cli 如果设置了密码先执行 auth passward
2017-07-26 13:55:55
3134
原创 yii配合rabbitmq邮件消息列队
思路: 1、业务逻辑层里把邮件消息丢进rabbitmq //业务逻辑层 $data = array( 'subject' => 'confirm',//邮件模板名称 'level' => 10,//优先级 'user_id' => 12, '
2016-10-25 18:34:11
1832
原创 yii配置rabbitmq消息列队
\protected\extensions\rabbitmq\RabbitMq_Server.php<?php/** * @desc 配置rabbitmq基类 * @author Ezreal.Yin * @date 2016-10-20 */class RabbitMq_Base{ public static $pub_modules = array( 'pc_asn
2016-10-25 17:59:08
3452
1
原创 Yii 导出excel
public function actionExport(){ $product_ids = $this->request_param_get['product_ids']; $Stocks = Stocks::model()->with('product')->findAll('store_id=:store_id AND t.product_id IN (' .
2016-10-14 18:12:53
1706
原创 PHP CURL POST 多个文件
//客户端$param = array( 'file1' => 'c:/test.pdf', 'file2' => 'c:/test.doc',);$url = 'ssl.siophan.com/agent/v1/order/add';$ch = curl_init($url); curl_setopt($ch, CURLOPT_POST,1);curl_setopt($
2016-10-14 17:58:53
4132
原创 Linux yum操作时出现Error: xz compression not available
yum升级php版本的时候出现这个问题由于CentOS6的系统安装了epel-release-latest-7.noarch.rpm 导致在使用yum命令时出现Error: xz compression not available问题。解决方法:1.到http://ftp.riken.jp/Linux/fedora/epel/下载epel-release-latest-6.noarch
2016-08-09 13:36:16
7656
原创 Yii 利用CConsoleCommand 实现计划任务
1、/protected/commands 下新建文件crons.php<?phpdefined('YII_DEBUG') or define('YII_DEBUG',true);// including Yiirequire_once('/../framework/yii.php');//注意文件目录是否正确// we'll use a separate config file//
2016-07-27 18:03:54
2313
1
原创 linux网卡报错设置
ifconfig...没有看到eth0.。然后重启网卡又报下面错误。故障现象:service network restartShutting down loopback insterface:
2016-07-19 19:50:52
2159
原创 SELinux对网站目录权限控制的不当的问题
apache 报错所以使用chcon更改SELinux权限以及显示结果如下:setenforce 0 #必须暂时停止SELinux,否则可能导致操作失败。 chcon -t httpd_sys_content_t -R /var/www/html/home_start/ #R参数是递归操作的意思经过修改就会发现SELinux的对应权限已经和其他目录相同了!都
2016-07-01 14:15:42
2715
原创 Shell替换:Shell变量替换,命令替换,转义字符
如果表达式中包含特殊字符,Shell 将会进行替换。例如,在双引号中使用变量就是一种替换,转义字符也是一种替换。举个例子:#!/bin/basha=10echo -e "Value of a is $a \n"运行结果:Value of a is 10这里 -e 表示对转义字符进行替换。如果不使用 -e 选项,将会原样输出:Value of a is
2016-06-23 13:25:42
635
原创 Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:$echo $$运行结果29949特殊变量列表变量含义$0当前脚本的文件名$n传递给脚本或函数的参数。n 是一个数字,表示第几个
2016-06-23 13:24:47
206
原创 shell变量
第一个Shell脚本打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了。输入一些代码:#!/bin/bashecho "Hello World !"“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。echo命令用于
2016-06-23 13:21:55
211
原创 shell简介
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Unix/Linux系统内核的一部分,但它调用了
2016-06-23 13:16:53
308
原创 Linux安装php环境
安装apache:yum install httpd httpd-devel 启动apache:/etc/init.d/httpd start此时输入服务器的IP地址,应该看到apache的服务页面,端口不用输,apache默认就是使用80端口 安装mysql:yum install mysql mysql-server启动mysql:/etc/init.d/m
2016-06-22 16:32:40
308
原创 第三课、key的操作
在redis中,除了“\n”和空格,不能作为名字的组成内容,其他任何内容都可以成为key的名字部分。名字长度不做要求。values:StringsListsSetsSorted setsHashkey不要太长。占内存,查询慢key不要太短,像u:1000:pwd不如user:1000:password可读性好exists keydel
2016-06-12 23:21:16
322
原创 第二课、redis安装和使用
解压#tar zxvf redis-2.6.14.tar.gz#make编译#cd src#mkdir /usr/local/redis#cp redis-cli redis-server /usr/local/redis#cp redis.conf /usr/local/redis前端启动redis#./redis-server
2016-06-12 22:47:43
211
原创 第一课、redis的介绍和安装部署
NoSql介绍非关系型数据库超大规模,高并发特点key-value形式存储不一定遵循传统数据库的一些基本要求,比如遵循SQL标准、ACID属性(事务处理)、表结构等非关系型的、分布式、开源的、水平可扩展的1.处理超大量的数据2.运行在便宜的PC服务器集群上3.击碎了性能瓶颈适应场景1.对数据高并发读写2.对海量数据的高效率存储
2016-06-12 22:46:50
304
原创 12.桥接模式
<?php//防止子类爆炸//论坛给用户发信息,可以是站内短信,email, 手机interface msg{ public function send($to, $content) { }}class zn implements msg{ public function send($to, $content) { ech
2016-06-05 22:38:26
344
原创 11.适配器模式
<?php//服务器端class tianqi{ public static function show() { $today = array('tep'=>28, 'wind'=>7, 'sun'=>'sunny'); return serialize($today); }}class AdapterTianqi extends tianqi{ public sta
2016-06-05 21:29:42
249
原创 10、装饰模式
避免深度继承<?phpclass article{ protected $content; public function __construct($content) { $this->content = $content; } public function decorator() { return $t
2016-06-02 23:05:18
312
原创 9、策略模式
思考: 如果想增加取模运算又如何操作?想一想简单工厂方法,是否有些相似? 又有哪些不同?通过接口,隔离封装通过继承,适应变化工厂模式,我们着眼于得到对象,并操作对象,策略模式,我们着重得到对象某方法的运行结果 + - * / <?phpinterface Math{ public function calc($op1
2016-06-01 23:35:40
259
原创 8、职责链模式
chain of resionbility 指责链模式 粗口 黄赌毒 分裂国家 <?php $lev = isset($_POST['jubao']) ? $_POST['jubao'] + 0 : 0 ; clas
2016-05-31 22:55:36
294
原创 7、观察者模式
1:判断选中的值2:顺序下来,根据值,修改内容区域3:再修改广告区域.if(v == '男') { 内容区背景变灰 广告区内容变成男人话题} else if(v == '女'){ 内容区背景变粉 广告区内容变成女人话题}问题在哪儿?1:让你选择时引起3个区域的变化,是否要修改if/elseif部分2:如果选择女性样式,
2016-05-30 23:12:24
227
原创 6、单例模式
//单例模式//第一步,普通类class single{}$s1 = new single();$s2 = new single();//两个对象是一个的时候才全等if($s1 === $s2){ echo '是一个对象';}else{ echo '不是一个对象';}//第二步 封锁new操作class s
2016-05-30 21:55:38
228
原创 5、工厂方法
//共同接口interface db{ function coon();}interface Factory{ function createDB();}//服务器端开发(不知道将会被谁调用)class dbmysql implements db{ public function conn() {
2016-05-29 22:42:49
247
原创 4、简单工厂模式
//共同接口interface db{ function coon();}//服务器端开发(不知道将会被谁调用)class dbmysql implements db{ public function conn() { echo '连接上mysql'; }}class dbsqlite imp
2016-05-29 22:42:18
310
原创 3、面向对象接口
//共同接口interface db{ function coon();}//服务器端开发(不知道将会被谁调用)class dbMysql implements db{ public function conn() { echo '连接上mysql'; }}class dbSqlite imp
2016-05-29 22:41:43
234
原创 2、说说多态
为什么先说多态? (Polymorphism)答: 多态相对封装与继承,理解稍微复杂一些. 更重要的是, 通过PHP,Java多态的不同体现,体会静态语言与动态语言的巨大差异而这个差异巨大,影响到设计模式. 对于动态语言,不可照搬java,C++中的设计模式 多态(Polymorphism) 是一个生物学上的概念, 指同一特种的多种表现形态. 如:西
2016-05-29 22:40:40
393
原创 1、什么是设计模式
学习设计模式的意义 1:更深入的理解面向对象的思想. 2:有利于开发出扩展性强的程序 3:面试时的重要考察方面 什么是设计模式?在软件开发过程中,经常出现的典型场景的典型解决方案,称为设计模式如何学习设计模式典型场景--->典型问题--->典型解决方法
2016-05-29 22:39:53
289
原创 yii 布局设置
一、设置公共控制器布局配置>protected\components\Controller.phpclass Controller extends Controller{ public $layout = '//layouts/main';}?>二、 设置公共布局头部>protected\widget\common\header.phpclass Header exte
2016-05-25 13:20:37
628
原创 php 生成条形码(基于yii)
<?php/*** @desc 生成条形码模型* @author Ezreal.yin* @date 2016-02-15**/class BarcodeModel{ /** * 根据获取的数据生成条形码 * * @param string $string 费用类型 * @return array 此类型的费用记录集合
2016-05-20 17:11:54
2735
原创 第三章、SQL语句的优化
3.1 优化sql语句的一般步骤 3.1.1 通过show status命令了解各种SQL的执行效率 格式:mysql>show [session|global]status; 其中:session(默认)表示当前连接, global表示自数据库启动至今 mysql>show status; mys
2016-05-18 22:30:48
307
原创 第二章、sql语句技巧和优化
2.1 正则表达式的使用 1.^在字符串的开始处匹配 2.$在字符串的末尾处进行匹配 3..匹配任意单个字符,包括换行符 4.[]匹配括号里任意字符 5.[^]匹配不出现在括号里的任意字符 6.a*匹配0个或者多个a 7.a+匹配一个或者多个(不包括字符串) 8.a?匹配一个或者0个a 9.a1|a2匹配
2016-05-18 22:30:05
230
原创 第一章、mysql基本操作
1.1 mysql表复制 create table t2 like t1; insert into t2 select * from t1;1.2 mysql 索引 1、ALTER TABEL 用来创建普通索引,UNIQUE索引或者PRIMARY KEY索引 ALTER TABLE table_name ADD INDEX index_
2016-05-18 22:29:07
296
原创 yii 安装插件简易思路
public function actionInstall() { //获取插件信息 Yii::import('application.models.CommonModel'); $id = Yii::app()->request->getParam('id'); $plugin = CommonModel::fin
2016-04-29 16:05:18
479
原创 svn版本之间修改文件目录获取并导入到本地
/** * @desc svn版本之间文件目录获取 * @author Ezreal.yin * @date 2016-04-26 * @说明:确保svn安装的时候选择了command line client tools(默认不选择),把svn加入到环境变量 */if ($_POST){ $version_from = isset($_POST['versio
2016-04-26 16:18:25
1825
原创 yii模块化安装简易过程
class InstallController extends Controller { //安装页面 public function actionIndex(){ $this->render('install'); } //安装模块操作 public function actionUpload(){
2016-04-07 17:17:43
751
转载 WordPress插件机制实现原理
1)WordPress读取所有可用的插件在文件”/wp-admin/includes/plugin.php”中,函数 get_plugins() 用来从文件系统得到所有的插件。原理很简单,就是读取”wp-content/plugins”目录下的所有PHP文件。这个函数允许一级的子文件夹,也就是说在’wp-content/plugins’下面的PHP文件,以及所以在此目录下的一级子文件夹内部
2016-04-06 11:42:10
1541
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人