原创 數據與業務邏輯分離

1、面向對象能給我們什麼? 進行分析之前,我們先來複習一下面向對象。 對象是要進行研究的任何事物。 類是具有相同或相似性質的對象的抽象。 面向對象的要素:抽象,封裝、繼承、多態。 面向對象目的是:如何分配職責。 面向對象設計原

原创 處理多維數組

在實際工作,我們經常會遇到對多維數組的處理,一般就會採用多重循環的方式,直到數組的最裏面那一層或者使用遞歸來處理,在php中可以使用array_walk_recursive來靈活處理 /** * @desc 處理多維數

原创 大流量高併發解決方案

一.硬件 確保所用的服務器內存,CPU,帶寬能夠支撐大流量高併發 二.軟件 在對應硬件能夠支撐的條件下,我們接下來就需要優化軟件來實現硬件的最大利用化。就像OS一樣,一款好的OS就能發揮硬件的最大利用值。 1.web服務器優化

原创 app多版本控制的服務端解決方案

1.應用場景 手機客戶端按一定週期發版,但是客戶不一定會及時更新到最新版本,所以需要服務端能支持舊版手機客戶端。 服務端支持舊版手機客戶端的方式主要有: 相同的接口支持不同版本手機端的請求,需要服務端接口做好兼容 相同的接口支

原创 mysql性能優化------explain詳解

1.explain作用 explain語句提供了MySQL如何執行語句的信息。解釋選擇、刪除、插入、替換和更新語句如何工作。 2.如何使用 explain your command; select_type

原创 php實現雙向隊列

<?php class Deque { private $queue = array(); public function addFirst($item) { return array_uns

原创 redis各個數據類型的應用場景

瞭解下Redis內部內存管理中是如何描述這些不同數據類型的: 首先Redis內部使用一個redisObject對象來表示所有的key和value,redisObject最主要的信息如上圖所示:type代表一個value對象具

原创 mysql性能優化------主從複製與讀寫分離

一、什麼是主從複製與讀寫分離 如上圖所示,當web server1/2/3要寫入數據時,則向mysql db Master(主服務器)發出寫入請求(即寫入到master),如果要進入讀操作時,則只向從服務器 mysql DB

原创 win7安裝redis並簡單使用

1.工具準備 a.下載win7的redis點擊這裏 b.下載你的php對應的redis拓展 使用phpinfo()函數查看PHP的版本信息,這會決定擴展文件版本(特別注意以php版本的architecture是

原创 前端常用網頁代碼

1、控制橫向和縱向滾動條的顯隱? <body style=”overflow-y:hidden”> 去掉x軸 <body style=”overflow-x:hidden”> 去掉y軸 <body scroll=”no”>不顯 2

原创 搶紅包算法

<?php /* * 生成紅包的函數 */ function getRandMoney($totalMoney, $totalPeople = 2, $miniMoney = 1) { $randRemainMoney

原创 PHP加密解密函數

<?php function encryptDecrypt($key, $string, $decrypt) { if ($decrypt) { $decrypted = rtrim(mcrypt_dec

原创 數據庫冗餘字段設計作用

1.什麼是冗餘字段? 在設計數據庫時,某一字段屬於一個表,但它又同時出現在另一個或多個表,且完全等同於它在其本來所屬表的意義表示,那麼這個字段就是一個冗餘字段,外鍵除外 ——以上是我自己給出的定義 2.冗餘字段應用場景 冗餘字段

原创 異常處理日誌記錄

在我們工作當中無法避免bug,爲了能快速解決bug,需要能精準快速的定位問題所在。這就需要我們將每次異常日誌完整的記錄下來,包括傳入的參數,在哪個類的哪個方法哪一行報錯的 在php中常使用getTrace來定位問題所在 <?php

原创 form表單name命名問題

在實際開發中,需要使用二維數組,所以form,name命名規則應該這樣才能正確使用 <input class="txt" type="text" name="port[te1]" value="1"> <input class="