一般數據都是從數據庫中獲取的,也是本人的慣性思惟。redis
DB->cache。數據庫
不要過度依賴數據庫網絡
程序離不開好架構。必要時刻須要新技術、好架構、好設計。架構
數據庫是有損耗的,因此咱們作了各類各樣的cache,經過內存減小IO。併發
前後通過了兩個案例,深入體會到這點。設計
案例1、內存
煤礦定位。監控
數據從不間斷,由井下的硬件設備發送到上位電腦中。而後經過這些數據獲得相似於這樣的數據,人員位置的變化、變化時間和上下井時間。終端
數據硬件
由井下做業的人員決定,也就是煤礦的規模。一般3-5秒會發送一我的員的數據,也就是12-20/分鐘,假如人員有3000人, 每班次下井1000人,一天24小時,數據也不小。
不討論數據庫如何設計,及採用的數據庫,也不考慮網絡處理模塊。依據行業標準,須要實時知道做業人員在井下的位置,數據是不能夠遲延的。在礦上監控室會實時觀察!從不間斷!
固然還有一些實時數據須要觀察,例如報警等信息。若是這些數據從數據庫中去讀取,那對數據庫的壓力是很是之大的。雖然不須要考慮併發等因素。不管表中的數據是多少,首先須要實時進行寫操做,其次實時進行讀操做,也就是不間斷的去掃表。
案例2、
GPS定位
較上一個系統,數據量不是一個級別。客戶的終端數量在10-20萬,數據頻率1/分鐘。24小時不間斷。
功能上有些相似,一樣須要知道車輛的最新位置。
這兩個案例,對於這些即時數據的獲取,都是經過讀寫內存實現的,雖然增長了工做量,也帶來了難度,但效果仍是不錯的。
分別使用了memchached,redis。