在設計架構快取的時候,首先要選定快取元件,比如要用local-cache,還是redis、memcached、pika等開源快取元件。
如果業務快取需求比較特殊,還要考慮是直接定製開發乙個新的快取元件,還是對開源快取進行二次開發,來滿足業務需要。
確定好快取元件後,要根據業務訪問的特點,進行快取資料結構的設計。
對於簡單的kv讀寫的業務,將這些業務資料封裝為string、json、protocol buffer等格式,序列化成位元組序列,然後直接寫入快取中。讀取的時候,先從快取元件獲取到資料的位元組序列,在進行反序列化操作即可。
對於只需要儲存部分欄位或需要在快取端進行計算的業務,可以把資料設計為hash、set、list、geo等結構,儲存到支援複雜集合資料型別的快取中,如redis、pika等。
確定了快取元件,設計好了快取資料結構,接下來就要設計快取的分布。可以從三個維度來進行快取的分布設計。
其次,分布讀寫訪問
設計函式時,要考慮的因素
在設計函式時,要考慮很多因素。1.讓每個函式只做一件事情並把這件事情做好。軟體不可避免地要修改,通過結合使用大量簡短的函式,可讓軟體更容易修改。這還有助於測試各個函式以及整個軟體。2.維護。在團隊合作開發中,你編寫的函式易於閱讀和理解嗎?如果不是這樣的,就說明它過於複雜或必須新增注釋。別忘了,你可能...
快取設計需要考慮的問題
前言 沒有一種快取方案可以解決一切的業務場景或資料型別,我們需要根據自身的特殊場景和背景,選擇最適合的快取方案 一.是否需要使用快取 需要使用快取的業務場景 比如前台頁面展示,購物車 二.快取物件的粒度 一種資料乙個物件,簡單,讀取寫入都快,但是種類一多,快取的管理成本就會很高 多種資料放在乙個集合...
Mysql效能優化需要考慮的因素
對於程式設計師來說資料庫就是操作非常方便的資料儲存中心,希望什麼資料都存放在資料庫中,不論是需要持久化的資料,還是臨時存放的過程資料,不論是普通的純文字格式的字元資料,還是多 的二進位制資料,都喜歡全部塞如資料庫中。因為對於應用伺服器來說,資料庫很多時候都是一集中式的儲存環境,不像應用伺服器那樣可能...