我看很多人寧願用redis儲存資料的json也不會用mysql的MEMORY引擎,請問是這個引擎效能差還是什麼原因嗎?我觀察過國內一些開源專案基本上也沒有用到這個引擎,這是為什麼吶?
我看很多人寧願用redis儲存資料的json也不會用mysql的MEMORY引擎,請問是這個引擎效能差還是什麼原因嗎?我觀察過國內一些開源專案基本上也沒有用到這個引擎,這是為什麼吶?
很多時間存的資料格式比較複雜,KV方式然後存JSON格式比較方便,容易解析
可靠性方面redis好一些 -- MySQL的Memory表掉電後會丟數據,redis好一些
首先:redis的速度比mysql快好幾個數量級。
所以:
1.資料量不太大 && 資料量經常存取 放到redis裡比較好。 這裡的資料量大小可以參考redis伺服器記憶體的大小。如果資料量小於redis伺服器記憶體大小的話,就是可以考慮放入redis的。
2.redis存取比mysql更簡單。
先來了解 MySQL 的 Memory engine 吧
<code>http://dev.mysql.com/doc/refman/5.7/en/memory-storage-engine.html </code>
看看有多少 Unsupport 的。
回到跟 Redis 的比較,就扯三點吧
Mysql 的 Memory engine 不支援 expire_date,我得手動刪除吧?
儲存資料前,我得建表吧,如果我的資料不是行列的,那是無序的呢?
你回傳給前端的是 JSON 字串,還是你從資料庫取出來序列化的 Model 類別呢?那我為什麼不直接從 Redis 裡面取個 JSON 字串出來直接回傳呢。
當然以上 Mysql 的 Memory engine 也可以辦到,但是痛苦指數就上升了很多,說明它不是很適合以上場景,總不能用剪刀去砍木頭吧?雖然也砍得下來。
至於更深層的原子性之類的比較,0 - 0我覺得還沒到討論這個東西出場的份兒,因為你會跟苦瓜和蘋果比甜度?