ps -aux中(a指代all——全部的進程,u指代userid——執行該進程的用戶id,x指代顯示全部程序,不以終端機來區分)php
ping xxhtml
《安裝Tideways和Toolkit對PHP代碼進行性能分析》git
《swoole-tracker安裝客戶端》github
PHP緩存工具
yac是用於PHP的快速,無鎖的共享內存用戶數據緩存。它能夠用來代替APC或本地memcached。正則表達式
php數組函數
array_merge 若是兩個或更多個數組元素有相同的鍵名,則最後的元素會覆蓋其餘元素
array_reduce(array,myfunction,initial) 函數發送數組中的值到用戶自定義函數,並返回一個字符串數據庫
isset 語言構造器:isset()會同時檢查鍵和值,只有當健存在,對應的變量不爲NUll的時候纔會返回TURE
array_key_exists 函數:這個函數會返回TRUE,只要鍵值存在,即便值爲NULLsegmentfault
經過php擴展替代高頻邏輯跨域
來源數組
單點登陸全稱Single Sign On(如下簡稱SSO),是指在多系統應用羣中登陸一個系統,即可在其餘全部系統中獲得受權而無需再次登陸,包括單點登陸與單點註銷兩部分。
client -- service1 -- seo認證緩存
1* 用戶client訪問 service1跨域
,檢查是否登陸,若是沒有;
2* 帶上本身的地址目的地址
爲參數跳轉到認證中心,sso檢查是否登陸,若是沒有:跳轉到登陸頁,登陸;
3* 生成令牌token添加到目的地址
,並跳轉到service1;
4* service1 請求sso,檢查token是否有效,若是有,註冊用戶;
5* service1 使用token與client進行通信。
1* 用戶client向 service1 發起註銷請求,註銷;
2* service1向sso請求使token失效。
MYSQL優化總結、(全棧須知)8.MYSQL優化總結
【背誦】合理建表-表結構優化,規範SQL-查詢優化
第一範式(確保每列保持原子性);
第二範式(確保表中的每列都和主鍵相關);
第三範式(確保每列都和主鍵列直接相關,而不是間接相關)。
開啓查詢緩存
一鎖二查三更新。一般來說在數據庫上的悲觀鎖須要數據庫自己提供支持,即經過經常使用的select … for update操做來實現悲觀鎖。
須要注意的是, FOR UPDATE
生效須要同時知足兩個條件時才生效:
set autocommit=0; //設置完autocommit後,咱們就能夠執行咱們的正常業務了。具體以下: //0.開始事務 begin;/begin work;/start transaction; (三者選一就能夠) //1.查詢出商品信息 獲取鎖 select status from t_goods where id=1 for update; //2.根據商品信息生成訂單 insert into t_orders (id,goods_id) values (null,1); //3.修改商品status爲2 update t_goods set status=2; //4.提交事務 撤銷鎖 commit;/commit work;
實際更新數據的最後一步再去拿一下鎖就好。
1. SELECT data AS old_data, version AS old_version FROM …; 2. 根據獲取的數據進行業務操做,獲得new_data和new_version 3. UPDATE SET data = new_data, version = new_version WHERE version = old_version if (updated row > 0) { // 樂觀鎖獲取成功,操做完成 } else { // 樂觀鎖獲取失敗,回滾並重試 }
$fp = fopen("lock.txt", "w+"); if(flock($fp,LOCK_EX | LOCK_NB)) { //..處理訂單 flock($fp,LOCK_UN); }
client -- server1 -- server2