在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

    0
    • 聊天消息
    • 系統消息
    • 評論與回復
    登錄后你可以
    • 下載海量資料
    • 學習在線課程
    • 觀看技術視頻
    • 寫文章/發帖/加入社區
    會員中心
    創作中心

    完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

    3天內不再提示

    Redis實戰的常見問題和解決方法

    汽車玩家 ? 來源:今日頭條 ? 作者:今日頭條 ? 2020-05-03 18:22 ? 次閱讀

    一、前言

    小伙伴們對Redis應該不陌生,Redis是系統必備的分布式緩存中間件,主要用來解決高并發下分擔DB資源的負載,從而提升系統吞吐量。

    Redis支持多種數據類型,String(字符串)、list(列表)、hash(哈希)、set(集合)、zset(有序集合),不同的類型可以應用到不同的業務需求中。

    Redis的集群部署也增強了Redis的高可用性,以及對數據的易擴容。

    上面都是Redis知識掌握的重點,這些知識點也是我們工作的時候,經常用到的,網上介紹的也挺多,老顧就不介紹了。

    今天老顧分享Redis企業應用,從業務實戰的緯度,看看我們平時使用Redis出現了什么問題?如何去解決?

    二、Redis集群劃分

    現在我們企業中,做的項目產品肯定不止一個;或者一個大的平臺中,會有很多業務線。不同的項目和業務線肯定是不同的團隊進行開發的。那大家都會用到Redis,那怎么去劃分?

    獨立Redis集群

    這種方案就是不同的業務用不同的Redis集群,這種方案針對一些小項目或業務線不復雜,以及用到Redis緩存范圍不大的話,是對服務器資源的浪費,而且增加了運維的工作量。

    當然也有好處,就是Redis資源的獨立性,不干擾;一般會用在大項目中。

    公共Redis集群

    這種方案就是一些業務共用一個Redis集群,增強了對Redis資源的利用率。

    三、問題

    在一般企業中,不同的業務線一般我們采用的是公共Redis集群,因為業務線都不大,獨立集群沒有必要。這樣雖然對Redis資源充分利用了,但會出現一些問題。

    四、如何區分業務

    多業務間用Redis,會出現很多緩存Key,根本沒法知道哪些key是屬于哪個業務的,如:

    KEY: user:1000、user:book、book、user:like:book、book:user;甚至會出現key沖突。

    Redis的key在開發的使用是要合理進行設計規劃的,但兩個不同的團隊,技術和管理都不一樣,即使有規范文檔,但不同的業務團隊間,規范的執行就不得而知。

    五、如何優雅擴容

    我們在開發web服務時,會用類似jedis客戶端連接Redis服務器,會在配置文件中加入Redis集群地址。不過當系統遇到Redis負載太高,或者redis的數據需要擴容,就需要增加Redis服務器。這時就需要重新把配置文件中的Redis集群更改,再重啟應用。

    上面的方式是否太low了,都需要重新啟動應用,那么多的應用都需要重啟,是不是很麻煩,而且如果在無法區分業務的情況下,還不知道重啟哪些業務應用。

    六、如何發現異常

    因為不同的業務,不同的團隊,不同的開發人員在真實業務場景中,我們管理者是無法避免bug存在的,也無法預測線上會發生什么樣的問題?如:發現Redis集群有不穩定情況,cpu負載非常高,那我們怎么知道是哪個業務導致的呢?

    這個是非常重要的,因為這個是公共的Redis集群,一旦這個集群掛了,會影響整個業務。

    七、如何截斷異常

    當我們在生產環境中,發現異常是由哪個業務產生時,或者是哪個應用服務器產生的,那如何很快速截斷的讓有問題的業務和應用服務器,先不讓他們訪問我們公共Redis集群,等排查出原因在恢復他們的訪問權限。

    八、解決方案

    小伙伴看到這里,感覺怎么樣?是不是工作中,沒有想過這些問題,工作中就直接按照網上的介紹先拿來用了。

    現在是不是心里在想,怎么去解決上面的問題?

    老顧這里介紹一下解決思路,具體整個代碼等老顧的開源項目rb-cache上線后,會分享給大家。

    九、區分業務

    這個問題解決相對比較簡單,就是對我們現有的客戶端工具,進行二次封裝,

    Redis實戰的常見問題和解決方法

    上圖就是定義一個二次封裝接口

    Redis實戰的常見問題和解決方法

    其實原理就是強制在方法中,要開發人員賦予業務區分,每個業務都是在開發前,管理人員定下來的,這個管理就比較簡單了。

    如果項目管理中,對業務的劃分比較合理的話,可以在外面再封裝一個簡單的方法,把business業務放在配置文件中,這樣就不需要每次都要傳business這個參數了。

    十、優雅擴容

    解決這個問題,其實原理比較簡單,就是程序如果能夠知道Redis集群地址產生了變化,重新設置一下jedis客戶端的連接配置。現在的問題就是如何知道Redis集群地址發生了改變?

    我們可以采用把Redis的集群地址配置在zookeeper中,應用在啟動的時候,獲取zk上的集群地址的值,進行初始化。如果想要改變集群地址,要在zk上面進行設置。

    zk重要的特性就是監聽特性,節點發生變化,就會立刻把變化發送給應用,從而應用獲取到值,重新設置jedis客戶端連接

    Redis實戰的常見問題和解決方法

    十一、發現異常

    發現異常這個問題,其實就是一個監控的問題,我們需要把各個客戶端使用Redis的情況進行監控。怎么監控?

    需要一個監控工具,這個監控工具網上有幾個,推薦使用小米的open-falcon,自行搭建改監控系統,搭建比較復雜,但功能比較強大,很多公司都在使用。

    當然小伙伴們可以用別的監控工具,只要數據上報協議,和監控報表輸出功能即可,當然也要有報警的功能,及時給運維人員報告

    再使用Aop攔截Redis操作類,攔截Redis操作,把相關數據進行封裝。每隔1分鐘把這些數據上報到open-falcon平臺中。具體監控什么數據,由業務決定,一般要把設置的key,業務,操作時長,哪個客戶端IP發起的,都需要監控。

    在可以設置相關的報警規則,如:某個key一直被調用,在一段時間內操作次數太高。這樣就可以方便排查哪些key導致cpu負載太高,就可以去看一下設置這個key的代碼,有沒有什么問題?是不是死循環等問題?

    十二、截斷異常

    在上面的發現異常的基礎上面,如果發現某些業務應用,不正常,就可以立即發起截斷該客戶端的請求,這樣可以保證其他業務不受影響。這里我們使用客戶端方式去實現截斷。原理也很簡單,在Redis二次封裝的類中,我們需要判斷本機是否在黑名單中,如果存在,則無法操作方法,或報異常。

    Redis實戰的常見問題和解決方法

    如何知道黑名單的變化,跟優雅擴容那個Redis集群地址的改變,方案一樣。

    十三、總結

    在企業應用中,小伙伴們要經常去思考,業務進行中,如何方便管理,及時發現問題,是非常重要的。這也是很多管理者經常忽略的,都只是先把功能完成了,而不顧管理和監控。希望這篇文章能夠幫助大家,從另一個緯度發現問題。謝謝!!!

    聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
    • 字符串
      +關注

      關注

      1

      文章

      589

      瀏覽量

      21139
    • Redis
      +關注

      關注

      0

      文章

      385

      瀏覽量

      11330
    收藏 人收藏

      評論

      相關推薦
      熱點推薦

      Redis實戰筆記

      《 2024最新Redis 實戰筆記》,這份筆記對 Redis 的相關知識做了系統全面的介紹,還是PDF版本,可自由復制,特別適合 Redis 初學者快速入門和提高。 ? 本筆記適合人
      的頭像 發表于 02-09 09:12 ?330次閱讀
      <b class='flag-5'>Redis</b><b class='flag-5'>實戰</b>筆記

      機房空調—機房送風與回風設計常見問題和解決方法

      機房送風與回風設計是確保機房穩定運行的重要環節。然而,在實際設計和應用中,常常會遇到一些問題。下面聊一下機房送風與回風設計常見問題。 一、送風系統設計常見問題 1、送風口布局不合理
      的頭像 發表于 02-07 10:37 ?503次閱讀
      機房空調—機房送風與回風設計<b class='flag-5'>常見問題</b><b class='flag-5'>和解決方法</b>

      電子焊接的常見問題解決方法

      電子焊接是電子組裝過程中的關鍵步驟,焊接質量的好壞直接影響電子產品的性能和可靠性。在電子焊接過程中,經常會遇到一些常見問題,掌握其解決方法對于提高焊接質量具有重要意義。以下是幾種常見的電子焊接
      的頭像 發表于 01-09 10:28 ?1035次閱讀

      gitee 常見問題解決方法

      Gitee作為國內的代碼托管平臺,在使用過程中可能會遇到一些問題。以下是一些常見問題及其解決方法: 一、倉庫創建與代碼推送問題 倉庫已存在遠程配置 問題 :在嘗試為已有項目添加遠程倉庫配置時,可能會
      的頭像 發表于 01-06 10:06 ?1159次閱讀

      mac的常見問題解決方法

      Mac常見問題解決方法 1. 系統啟動緩慢 問題描述: 啟動Mac時,系統啟動緩慢,甚至出現卡頓現象。 解決方法: 檢查啟動項目: 打開系統偏好設置中的“用戶與群組”,點擊“登錄項”,移除不必要
      的頭像 發表于 12-19 15:02 ?962次閱讀

      Ubuntu系統常見問題解決方法

      Ubuntu是一個基于Linux的開源操作系統,以其穩定性和易用性而受到許多用戶的喜愛。然而,在使用過程中,用戶可能會遇到各種問題。以下是一些Ubuntu系統中常見的問題及其解決方法。 1. 無法
      的頭像 發表于 12-12 14:32 ?1443次閱讀

      multisi的常見問題解決方法

      遇到各種問題。 1. 啟動順序問題 問題描述: 用戶在安裝多系統后,發現默認啟動順序不符合預期,導致無法正常進入某個操作系統。 解決方法: 修改啟動順序: 進入BIOS設置,找到啟動順序(Boot Order)選項,調整各個操作系統的啟動順序。
      的頭像 發表于 12-09 11:07 ?647次閱讀

      VLAN 配置中的常見問題解決

      VLAN(虛擬局域網)配置中的常見問題涉及多個方面,包括配置錯誤、網絡互通問題、設備連接故障等。以下是對這些問題的分析和解決方法: 一、配置錯誤 管理VLAN配置錯誤 問題描述 :配置了錯誤的管理
      的頭像 發表于 11-19 09:22 ?4837次閱讀

      Mobaxterm 常見問題解決方法

      強大,但用戶在使用過程中可能會遇到一些問題。以下是一些常見問題及其解決方法: 1. 連接問題 問題: 無法連接到遠程服務器。 解決方法: 確認服務器地址和端口號是否正確。 檢查網絡連接是否正常。 確認服務器是否允許SSH/Tel
      的頭像 發表于 11-10 15:35 ?1.1w次閱讀

      UCD90xxx系列常見問題和解

      電子發燒友網站提供《UCD90xxx系列常見問題和解答.pdf》資料免費下載
      發表于 10-15 11:29 ?0次下載
      UCD90xxx系列<b class='flag-5'>常見問題</b><b class='flag-5'>和解</b>答

      變壓器輸出波形失真的原因和解決方法

      變壓器輸出波形失真是一個復雜且常見的問題,它可能由多種因素引起,并可能對電力系統的穩定性和效率產生負面影響。以下是對變壓器輸出波形失真原因及解決方法的詳細探討,旨在提供全面的分析和解決方案。
      的頭像 發表于 10-15 11:24 ?3774次閱讀

      使用示波器進行頻譜分析時,有哪些常見的問題和解決方法

      使用示波器進行頻譜分析時,可能會遇到的一些常見問題及其解決方法如下: 采樣率不足 :示波器進行頻譜分析時,需要滿足奈奎斯特準則,即采樣率至少是信號最高頻率成分的兩倍。如果采樣率不足,將無法準確捕獲
      的頭像 發表于 10-10 16:40 ?789次閱讀

      HSHA驅動器報警的常見問題解決方法

      HSHA驅動器報警的常見問題解決方法可以歸納如下: 常見問題 電機過載 : 原因 :電機長時間超負荷運行或短時間負載過重。 表現 :驅動器可能顯示Err 03等錯誤代碼。 伺服驅動過載 : 原因
      的頭像 發表于 09-19 09:20 ?2201次閱讀

      pcb設計中遇到的常見問題解決方法

      電氣或機械規范。 解決方法 : 確保所有設計元素(如焊盤、孔徑、走線寬度和間距)符合IPC標準。 使用自動化設計規則檢查(DRC)工具來識別和修正問題。 2. 材料選擇問題 問題 :選擇了不適合應用的材料。 解決方法 : 根據應用需求(如溫度
      的頭像 發表于 09-02 14:53 ?3782次閱讀

      常見的CAN總線故障及原因和解決方法

      總線也可能遇到一些故障。以下是一些常見的CAN總線故障及其原因和解決方法。 物理層故障 物理層故障通常是由于電纜損壞、連接器故障或接地不良等原因引起的。以下是一些具體的故障類型: 1.1 電纜損壞 電纜損壞可能是由于磨損、老化或外部環境因素導致的。損壞的電纜
      的頭像 發表于 06-16 10:34 ?8899次閱讀
      主站蜘蛛池模板: 丁香婷婷综合网 | 波多野结衣在线一区 | a成人毛片免费观看 | 天堂avwww | 四虎国产精品4hu永久 | 日本巨黄视频 | 伊人天天干| 日本aaaaa高清免费看 | 在线a亚洲老鸭窝天堂新地址 | 色综合天天综合网国产国产人 | 开心激情小说 | 色综合网天天综合色中文男男 | 99国产国人青青视频在线观看 | 国产美女视频一区二区二三区 | 色老头在线精品视频在线播放 | 五月在线观看 | 日韩视频 中文字幕 视频一区 | 岛国毛片 | 日韩特级| 免费一级牲交毛片 | 久久99精品久久久久久野外 | 97人人人人| 免费在线观看污视频 | 欧美video free xxxxx | 高清影院在线欧美人色 | www.久久在线| 日韩欧美国产电影 | 精品欧美一区二区三区在线观看 | 综合五月天堂 | 亚洲午夜久久久久久噜噜噜 | 成年人黄色大片大全 | 亚洲欧美一区二区三区麻豆 | 被暗卫肉高h | 天天干成人网 | 欧美影院 | 4455亚洲| 久久精品人人做人人看 | 中文字幕亚洲一区 | 色淫阁色九九 | 欧美香蕉在线 | 日本视频一区二区三区 |