此內容如有問題,請多多指教
Thinkphp默認各類緩存都是以文件緩存的
改的話在配置文件里改
'DATA_CACHE_TYPE' => 'File', // 數據緩存類型,支持:File|Db|Apc|Memcache|Shmop|Sqlite|Xcache|Apachenote|Eaccelerator
S數據緩存與F快速緩存最大的區別是:
S能設置緩存有效時間,來刪除自動緩存數據
而F不能設置只能強制刪除
F('data',NULL);S同理一樣強制刪S('data',NULL)除
查詢緩存cache默認是true即開啟了緩存的
注意:當向數據庫發送不同數據庫時,會產生不同的查詢緩存文件,
M('admin')->cache()->where()->select();
M('admin')->cache()->where()->select();若像數據庫發送相同同數據庫時只產生一條查詢緩存文件,
M('admin')->cache()->where()->select();
M('admin')->cache()->where()->find();
處理高並發解決方案:
當我們網站訪問量大了的時候,解決卡頓問題,
方法1:可以從數據庫着手,運用主從式分布式數據庫分配用戶請求數據庫地址,(上了百萬級同理),
假如在線用戶有10w人平均每一個人1秒鍾向數據庫發送3條數據庫那么就有30萬數據發送數據庫,
SQL的量可能會非常巨大,所以有必要設置下緩存的隊列長度,例如,我們希望SQL解析緩存不超過5000條記錄,可以設置:
1. 'DB_SQL_BUILD_LENGTH' => 5000, // SQL緩存的隊列長度
2. 然后分配到各個數據中從而減輕了服務器的壓力
方法二 從服務器端運用nginx配置服務器,(負載均衡)具體有待完善
方法3假如有100000用戶同時在我們p2p平台借款(其中可能會出現一小部分用戶卡頓借款失敗),為了解決其中出現的的問題,
我們可以設置兩個線程:
1. 主線程正常執行所有用戶的請求
2. 把所有用戶全部放到事務隊列處理,副線程只用來—>讀事務隊列的結果集
提高用戶體驗
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。