Java編程​要學哪些知識 Redis使用規範是什麼

Redis Java 數據庫 MySQL ElasticSearch C語言 千鋒鄭州 2019-07-14

Java編程​要學哪些知識?Redis使用規範是什麼?Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。根據不同的用途,Redis會有不同的持久化策略和逐出策略。千鋒小編就從使用場景方面給大家講解一下Redis的使用規範。


Java編程​要學哪些知識 Redis使用規範是什麼


1、冷熱數據區分

雖然Redis支持持久化,但將所有數據存儲在Redis 中,成本非常昂貴。建議將熱數據加載到Redis中。低頻數據可存儲在Mysql、ElasticSearch中。

2、業務數據分離

不要將不相關的數據業務都放到一個Redis中。一方面避免業務相互影響,另一方面避免單實例膨脹,並能在故障時降低影響面,快速恢復。

3、消息大小限制

由於Redis是單線程服務,消息過大會阻塞並拖慢其他操作。保持消息內容在1KB以下是個好的習慣。嚴禁超過50KB的單條記錄。消息過大還會引起網絡帶寬的高佔用,持久化到磁盤時的IO問題。

4、連接數限制

連接的頻繁創建和銷燬,會浪費大量的系統資源,極限情況會造成宿主機當機。請確保使用了正確的Redis客戶端連接池配置。

5、緩存Key設置失效時間

作為緩存使用的Key,必須要設置失效時間。失效時間並不是越長越好,請根據業務性質進行設置。注意,失效時間的單位有的是秒,有的是毫秒,這個很多同學不注意容易搞錯。

6、緩存不能有中間態

緩存應該僅作緩存用,去掉後業務邏輯不應發生改變,萬不可切入到業務裡。

緩存的高可用會影響業務,產生深耦合會發生無法預料的效果;會對維護行產生膚效果。

7、擴展方式首選客戶端hash

如果應用太小就別考慮了,如單Redis集群並不能為你的數據服務,不要著急擴大你的Redis集群(包括M/S和Cluster),集群越大,在狀態同步和持久化方面的性能越差。優先使用客戶端hash進行集群拆分,如根據用戶id分10個集群,用戶尾號為0的落在第一個集群。

相關推薦

推薦中...