redis使用規范

jopen 8年前發布 | 11K 次閱讀 Redis NoSQL數據庫

1、設置超時時間[最重要]

目前有許多key沒有設置超時時間,導致一直占用內存。

需要增加操作步驟,設置超時時間。時間盡量短。

某些業務要求key長期有效。可以在每次寫入時,都設置超時時間,讓超時時間順延。

短的超時時間,如 5分鐘,10分鐘,30分鐘,1小時,3小時,1天等

長的超時時間,如 7天,15天,1個月,3個月,6個月等

示例代碼如下:

// 設置有效期
            jedis.expire(cacheMapName, ZLConstant.SECONDS_1_MONTH);

// 如果存在key
            if (jedis.exists(mapName)) {
                existMap = true;
            }
            // 寫入登錄信息緩存
            jedis.hset(mapName, cacheKey, userJson);
            // 如果是新建的,就設置超時時間
            if (!existMap) {
                // 設置超時時間
                jedis.expire(mapName, expireSeconds);
            }

2、高頻和低頻分離

高頻數據存入Redis緩存,低頻數據不要存入Redis緩存。

高頻數據是經常訪問的數據,在這里做好壓力緩沖就行了。對于大量數據和列表數據尤其適用。

如,某商店的所有評價數據,總共有5000條之多,最近的30條(高頻)可能是最常訪問的,可以存入Redis緩存,其他的數據(低頻)都不需要存緩存。

3、合理使用list,map,set等集合結構

結合具體業務,設置合理的數據結構,找出更好的選擇。

集合結構還可以減少key的個數。

4、盡量使用字符串格式

可視化,便于查看和管理。

特別是在大批量數據的時候,效果明顯。

5、合理設置key的格式

多系統在共用緩存,需要key唯一。

合適的key,便于查看,統計,排錯。

key的格式,如:系統名+業務名+業務數據+其他

6、減少key的個數

為了過期管理,合理減少key。

比如,把key-value數據聚合,放到map、list里面。一個集合結構里面就可以包含很多個小數據。

7、精細化運營

之前的使用方法一直是粗放式。業務量小時,沒問題;業務量大了,就各種問題。

為了未來系統穩定,為了每個人的職業成長,需要學會精細化運營。

深入分析業務流程,合理安排數據結構,合理使用公共資源,優化讀寫效率,提高系統抗風險能力。


來自: http://my.oschina.net/everyDay111/blog/552698

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!