自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

往事随疯

生活不止眼前的苟且,还有诗和远方的田野

  • 博客(40)
  • 收藏
  • 关注

原创 Mysql数据的架构

#####数据库架构设计思路 1.可用性 2.读性能 3.一致性 4.扩展性 先说说一般互联网公司数据服务器的演化 (1)单机时代 (2)主从分离 (3) 分布式 ##### 1.可用性 如何保证数据的可用性?---> 冗余 冗余读库:一般互联网公司的mysql架构一主(写)多从 (读) 写还是单点,不能保证写高可用。 >冗余读库带来的副作用?读写有延时,可能不一致 那么如...

2019-03-20 10:14:42 157

原创 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 605

原创 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 3097

原创 yii配合rabbitmq邮件消息列队

思路:  1、业务逻辑层里把邮件消息丢进rabbitmq //业务逻辑层 $data = array( 'subject' => 'confirm',//邮件模板名称 'level' => 10,//优先级 'user_id' => 12,   '

2016-10-25 18:34:11 1807

原创 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 3424 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 1685 1

原创 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 4058

原创 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 7628

原创 Yii 利用CConsoleCommand 实现计划任务

1、/protected/commands 下新建文件crons.php<?php defined('YII_DEBUG') or define('YII_DEBUG',true); // including Yii require_once('/../framework/yii.php');//注意文件目录是否正确 // we'll use a separate config file //

2016-07-27 18:03:54 2285 2

原创 linux网卡报错设置

ifconfig...没有看到eth0.。然后重启网卡又报下面错误。 故障现象: service network restart Shutting down loopback insterface:

2016-07-19 19:50:52 2110

原创 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 2680

原创 Shell替换:Shell变量替换,命令替换,转义字符

如果表达式中包含特殊字符,Shell 将会进行替换。例如,在双引号中使用变量就是一种替换,转义字符也是一种替换。 举个例子: #!/bin/bash a=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 610

原创 Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数

前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。 例如,$ 表示当前Shell进程的ID,即pid,看下面的代码: $echo $$ 运行结果 29949 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个

2016-06-23 13:24:47 190

原创 shell变量

第一个Shell脚本 打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了。 输入一些代码: #!/bin/bashecho "Hello World !" “#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。echo命令用于

2016-06-23 13:21:55 195

原创 shell简介

Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。 Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令; 作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。 它虽然不是Unix/Linux系统内核的一部分,但它调用了

2016-06-23 13:16:53 292

原创 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 293

原创 第三课、key的操作

在redis中,除了“\n”和空格,不能作为名字的组成内容,其他任何内容都可以成为key的名字部分。名字长度不做要求。 values: Strings Lists Sets Sorted sets Hash key不要太长。占内存,查询慢 key不要太短,像u:1000:pwd不如user:1000:password可读性好 exists key del

2016-06-12 23:21:16 305

原创 第二课、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 191

原创 第一课、redis的介绍和安装部署

NoSql介绍 非关系型数据库 超大规模,高并发 特点 key-value形式存储 不一定遵循传统数据库的一些基本要求,比如遵循SQL标准、ACID属性(事务处理)、表结构等 非关系型的、分布式、开源的、水平可扩展的 1.处理超大量的数据 2.运行在便宜的PC服务器集群上 3.击碎了性能瓶颈 适应场景 1.对数据高并发读写 2.对海量数据的高效率存储

2016-06-12 22:46:50 291

原创 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 322

原创 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 229

原创 10、装饰模式

避免深度继承 <?php class article { protected $content; public function __construct($content) { $this->content = $content; } public function decorator() { return $t

2016-06-02 23:05:18 290

原创 9、策略模式

思考: 如果想增加取模运算又如何操作? 想一想简单工厂方法,是否有些相似? 又有哪些不同? 通过接口,隔离封装 通过继承,适应变化 工厂模式,我们着眼于得到对象,并操作对象, 策略模式,我们着重得到对象某方法的运行结果 + - * / <?php interface Math { public function calc($op1

2016-06-01 23:35:40 244

原创 8、职责链模式

chain of resionbility 指责链模式 粗口 黄赌毒 分裂国家 <?php $lev = isset($_POST['jubao']) ? $_POST['jubao'] + 0 : 0 ; clas

2016-05-31 22:55:36 279

原创 7、观察者模式

1:判断选中的值 2:顺序下来,根据值,修改内容区域 3:再修改广告区域. if(v == '男') {    内容区背景变灰    广告区内容变成男人话题 } else if(v == '女'){    内容区背景变粉    广告区内容变成女人话题 } 问题在哪儿? 1:让你选择时引起3个区域的变化, 是否要修改if/elseif部分 2:如果选择女性样式,

2016-05-30 23:12:24 216

原创 6、单例模式

//单例模式 //第一步,普通类 class single { } $s1 = new single(); $s2 = new single(); //两个对象是一个的时候才全等 if($s1 === $s2) {     echo '是一个对象'; }else{     echo '不是一个对象'; } //第二步 封锁new操作 class s

2016-05-30 21:55:38 213

原创 5、工厂方法

//共同接口 interface db {     function coon(); } interface Factory {     function createDB(); } //服务器端开发(不知道将会被谁调用) class dbmysql implements db {     public function conn()     {

2016-05-29 22:42:49 229

原创 4、简单工厂模式

//共同接口 interface db {     function coon(); } //服务器端开发(不知道将会被谁调用) class dbmysql implements db {     public function conn()     {         echo '连接上mysql';     } } class dbsqlite imp

2016-05-29 22:42:18 296

原创 3、面向对象接口

//共同接口 interface db {     function coon(); } //服务器端开发(不知道将会被谁调用) class dbMysql implements db {     public function conn()     {         echo '连接上mysql';     } } class dbSqlite imp

2016-05-29 22:41:43 215

原创 2、说说多态

为什么先说多态? (Polymorphism) 答: 多态相对封装与继承,理解稍微复杂一些.    更重要的是,     通过PHP,Java多态的不同体现,体会静态语言与动态语言的巨大差异 而这个差异巨大,影响到设计模式. 对于动态语言,不可照搬java,C++中的设计模式  多态(Polymorphism) 是一个生物学上的概念, 指同一特种的多种表现形态.  如:西

2016-05-29 22:40:40 375

原创 1、什么是设计模式

学习设计模式的意义  1:更深入的理解面向对象的思想.  2:有利于开发出扩展性强的程序  3:面试时的重要考察方面  什么是设计模式? 在软件开发过程中,经常出现的典型场景的典型解决方案,称为设计模式 如何学习设计模式 典型场景--->典型问题--->典型解决方法

2016-05-29 22:39:53 270

原创 yii 布局设置

一、设置公共控制器布局配置 >protected\components\Controller.php class Controller extends Controller { public $layout = '//layouts/main'; } ?>二、 设置公共布局头部 >protected\widget\common\header.php class Header exte

2016-05-25 13:20:37 607

原创 php 生成条形码(基于yii)

<?php /** * @desc 生成条形码模型 * @author Ezreal.yin * @date 2016-02-15 **/ class BarcodeModel{ /** * 根据获取的数据生成条形码 * * @param string $string 费用类型 * @return array 此类型的费用记录集合

2016-05-20 17:11:54 2701 2

原创 第三章、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 290

原创 第二章、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 216

原创 第一章、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 280

原创 yii 安装插件简易思路

public function actionInstall()     {         //获取插件信息         Yii::import('application.models.CommonModel');         $id = Yii::app()->request->getParam('id');         $plugin = CommonModel::fin

2016-04-29 16:05:18 459

原创 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 1795

原创 yii模块化安装简易过程

class InstallController extends Controller {     //安装页面     public function actionIndex(){         $this->render('install');     }     //安装模块操作     public function actionUpload(){      

2016-04-07 17:17:43 731

转载 WordPress插件机制实现原理

1)WordPress读取所有可用的插件 在文件”/wp-admin/includes/plugin.php”中,函数 get_plugins() 用来从文件系统得到所有的插件。原理很简单,就是读取”wp-content/plugins”目录下的所有PHP文件。这个函数允许一级的子文件夹,也就是说在’wp-content/plugins’下面的PHP文件,以及所以在此目录下的一级子文件夹内部

2016-04-06 11:42:10 1497

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除