原创 laravel-mongodb查詢條件與字段類型不一致問題

因爲PHP是弱類型語言,最常見的不一致的情況應該是整型與字符串。 例如,當mongodb表的主鍵爲NumberLong類型,如下的代碼查詢不到結果 $id = '4476850'; $row = MongoModel::find(

原创 生活中的程序員思維(二)

生活中的程序員思維(二) 在生活中的程序員思維(一)中,講到了並行、併發、防禦式編程等思維,下面繼續講另外三種思維。 同步/異步 公司樓下開了一個飲品店,頗受歡迎。有些公司會大批量購買,作爲員工的下午茶。一開始,顧客需要親自到店

原创 生活中的程序員思維(一)

前言 回顧大約7年的程序員生涯,從一開始的小白,到現在成長爲一個可以去幫助他人的程序員,雖然離大牛還差得遠,但還是有些東西想寫一寫,就當思緒的偶爾停留。如果能對他人有所啓發,就是意外的收穫了。 這裏不寫具體的編程語言、技術內幕,而

原创 唯快不破:如何快速處理大量數據

背景 將數百張數據結構相同的表(用Tn代表),合併至一張表(用C代表) T表數據量分佈很不均衡,少至一位數,多至幾十萬 T表間沒有業務關聯 C表結構在T表結構的基礎上增加了幾個字段,無法使用INSERT INTO (SELECT

原创 每天一塊錢,擁有自己的雲服務器

在雲服務已經普及的今天,購買雲服務器的成本越來越低了。 擁有一臺雲服務器有哪些好處呢? 永遠在線,無需運維,雲服務商幫我們打理好一切 只要能連接網絡,隨時可以訪問、控制服務器 在雲端搭建自己的博客、網站 … … 作者近期購買了

原创 PHP開發者快速入門Java

PHPer learn Java 概述 本文面向需要學習Java的PHP開發者。 本文從一個helloworld程序開始,緊接着一個數據庫操作demo(這有別於從易到難的風格),然後迴歸基礎,難度逐步加大。把數據庫操作demo放在

原创 TMQ:定時消息隊列原理與實現

TMQ TMQ: Timing Message Queue,定時消息隊列。 概念 什麼是定時消息隊列? 存儲在隊列中的消息,可以按投遞時間順序獲取。 用(t,m)表示一個消息,其中t是投遞時間,m是消息體,則對於先後推送至隊列中的

原创 網站狀態異常時自動重啓php-fpm的shell腳本

#!/bin/bash resp=$(curl -Is http://jsonaz.com/|grep "502 Bad Gateway") if

原创 數據庫緩存策略

數據庫 指持久化數據庫,如 mysql mongodb 緩存 指內存型的數據存儲,如 redis memcached 一個良好的緩存策略需兼顧 命中率 緩存數據與數據庫數據的一致性 對命中率的兼顧 多大的命中率是好的?

原创 Lumen log daily 每天創建一份日誌文件

參考 lumen errors#logging 在bootstrap/app.php文件增加代碼: $app->configureMonologUsing(function(Monolog\Logger $monolog) use

原创 怎樣獲取表單中multiple select的輸入數據

multiple select元素支持選中多個option,如何獲取選中的多個值? <pre name="code" class="html"><select multiple="multiple" name="states"> <

原创 朋友圈動態性能優化

一、項目背景 用戶動態存儲在mongodb中。 動態按用戶可見性分爲三種類型 公開動態:所有好友可見 私有動態:僅自己可見 半公開動態:指定好友可見 用戶刷新朋友圈需查詢出以上三種類型的動態,以及自己發佈的動態,按自增ID(和

原创 php composer autoload添加個性化命名空間

一、修改composer.json 修改autoload部分,例如增加命名空間Commands並指定文件目錄爲app/commands, 1.1 psr-4規範 "autoload": { "psr-4" : { "C

原创 Lumen 5創建Facade類

Laravel的Facade,實際上是對service container中的service provider的一層包裝,使用魔術方法__callStatic調用service provider類的方法。拿Log Facade來探

原创 Laravel監聽數據庫訪問、打印SQL

增加一個helper函數 if ( ! function_exists('sql_dump')) { function sql_dump() { \DB::listen(function ($