自定义博客皮肤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 146

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

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

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

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

2016-10-25 18:34:11 1794

原创 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 3393 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 1654 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 4002

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

原创 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 2256 2

原创 linux网卡报错设置

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

2016-07-19 19:50:52 2100

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

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

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

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

2016-06-23 13:24:47 182

原创 shell变量

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

2016-06-23 13:21:55 186

原创 shell简介

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

2016-06-23 13:16:53 284

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

原创 第三课、key的操作

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

2016-06-12 23:21:16 278

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

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

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

2016-06-12 22:46:50 281

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

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

原创 10、装饰模式

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

2016-06-02 23:05:18 278

原创 9、策略模式

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

2016-06-01 23:35:40 232

原创 8、职责链模式

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

2016-05-31 22:55:36 247

原创 7、观察者模式

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

2016-05-30 23:12:24 206

原创 6、单例模式

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

2016-05-30 21:55:38 204

原创 5、工厂方法

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

2016-05-29 22:42:49 220

原创 4、简单工厂模式

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

2016-05-29 22:42:18 287

原创 3、面向对象接口

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

2016-05-29 22:41:43 198

原创 2、说说多态

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

2016-05-29 22:40:40 347

原创 1、什么是设计模式

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

2016-05-29 22:39:53 254

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

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

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

2016-05-20 17:11:54 2660 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 276

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

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

原创 yii 安装插件简易思路

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

2016-04-29 16:05:18 427

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

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

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

2016-04-07 17:17:43 717

转载 WordPress插件机制实现原理

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

2016-04-06 11:42:10 1482

空空如也

空空如也

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

TA关注的人

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