- NoSql現在被大量應用在大數據操作,其中原因以IO速度較以往關聯式資料庫快且耗費資源較低吸引我,而Redis效能更是數一數二。
- Redis簡單來說就是一個KeyValue架構的NoSql,而Value的類型可以是String、List、Hash…….,不過不是這篇要說的重點。
- 試想一個最常被用來討論的主題,提款機存款與提款,在帳戶只有一人操作存提款不會有甚麼問題,基本上就是存多少錢就可以提多少錢;但現在若是有兩人,A在提款時先遠端連線要回帳號資料,此時B已經提領錢出來,如此A在領錢時就會發生A端電腦存款與遠端Server不同步情形。解決方法有很多,這邊用資料原質性解決此問題。
- 一般我們會將資料取出後對資料做完操作在寫回資料庫,但在這期間可能有其他人捷足先登,我們可以將取出跟寫入在資料庫裡一併執行,Redis可以藉由腳本LuaScript來達成此目的。
- 這裡提供RedisLuaScript範例