一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Redis實(shí)戰(zhàn)的常見問題和解決方法

汽車玩家 ? 來源:今日頭條 ? 作者:今日頭條 ? 2020-05-03 18:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、前言

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

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

Redis的集群部署也增強(qiáng)了Redis的高可用性,以及對數(shù)據(jù)的易擴(kuò)容。

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

今天老顧分享Redis企業(yè)應(yīng)用,從業(yè)務(wù)實(shí)戰(zhàn)的緯度,看看我們平時使用Redis出現(xiàn)了什么問題?如何去解決?

二、Redis集群劃分

現(xiàn)在我們企業(yè)中,做的項(xiàng)目產(chǎn)品肯定不止一個;或者一個大的平臺中,會有很多業(yè)務(wù)線。不同的項(xiàng)目和業(yè)務(wù)線肯定是不同的團(tuán)隊(duì)進(jìn)行開發(fā)的。那大家都會用到Redis,那怎么去劃分?

獨(dú)立Redis集群

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

當(dāng)然也有好處,就是Redis資源的獨(dú)立性,不干擾;一般會用在大項(xiàng)目中。

公共Redis集群

這種方案就是一些業(yè)務(wù)共用一個Redis集群,增強(qiáng)了對Redis資源的利用率。

三、問題

在一般企業(yè)中,不同的業(yè)務(wù)線一般我們采用的是公共Redis集群,因?yàn)闃I(yè)務(wù)線都不大,獨(dú)立集群沒有必要。這樣雖然對Redis資源充分利用了,但會出現(xiàn)一些問題。

四、如何區(qū)分業(yè)務(wù)

多業(yè)務(wù)間用Redis,會出現(xiàn)很多緩存Key,根本沒法知道哪些key是屬于哪個業(yè)務(wù)的,如:

KEY: user:1000、user:book、book、user:like:book、book:user;甚至?xí)霈F(xiàn)key沖突。

Redis的key在開發(fā)的使用是要合理進(jìn)行設(shè)計(jì)規(guī)劃的,但兩個不同的團(tuán)隊(duì),技術(shù)和管理都不一樣,即使有規(guī)范文檔,但不同的業(yè)務(wù)團(tuán)隊(duì)間,規(guī)范的執(zhí)行就不得而知。

五、如何優(yōu)雅擴(kuò)容

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

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

六、如何發(fā)現(xiàn)異常

因?yàn)椴煌臉I(yè)務(wù),不同的團(tuán)隊(duì),不同的開發(fā)人員在真實(shí)業(yè)務(wù)場景中,我們管理者是無法避免bug存在的,也無法預(yù)測線上會發(fā)生什么樣的問題?如:發(fā)現(xiàn)Redis集群有不穩(wěn)定情況,cpu負(fù)載非常高,那我們怎么知道是哪個業(yè)務(wù)導(dǎo)致的呢?

這個是非常重要的,因?yàn)檫@個是公共的Redis集群,一旦這個集群掛了,會影響整個業(yè)務(wù)。

七、如何截斷異常

當(dāng)我們在生產(chǎn)環(huán)境中,發(fā)現(xiàn)異常是由哪個業(yè)務(wù)產(chǎn)生時,或者是哪個應(yīng)用服務(wù)器產(chǎn)生的,那如何很快速截斷的讓有問題的業(yè)務(wù)和應(yīng)用服務(wù)器,先不讓他們訪問我們公共Redis集群,等排查出原因在恢復(fù)他們的訪問權(quán)限。

八、解決方案

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

現(xiàn)在是不是心里在想,怎么去解決上面的問題?

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

九、區(qū)分業(yè)務(wù)

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

Redis實(shí)戰(zhàn)的常見問題和解決方法

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

Redis實(shí)戰(zhàn)的常見問題和解決方法

其實(shí)原理就是強(qiáng)制在方法中,要開發(fā)人員賦予業(yè)務(wù)區(qū)分,每個業(yè)務(wù)都是在開發(fā)前,管理人員定下來的,這個管理就比較簡單了。

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

十、優(yōu)雅擴(kuò)容

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

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

zk重要的特性就是監(jiān)聽特性,節(jié)點(diǎn)發(fā)生變化,就會立刻把變化發(fā)送給應(yīng)用,從而應(yīng)用獲取到值,重新設(shè)置jedis客戶端連接

Redis實(shí)戰(zhàn)的常見問題和解決方法

十一、發(fā)現(xiàn)異常

發(fā)現(xiàn)異常這個問題,其實(shí)就是一個監(jiān)控的問題,我們需要把各個客戶端使用Redis的情況進(jìn)行監(jiān)控。怎么監(jiān)控?

需要一個監(jiān)控工具,這個監(jiān)控工具網(wǎng)上有幾個,推薦使用小米的open-falcon,自行搭建改監(jiān)控系統(tǒng),搭建比較復(fù)雜,但功能比較強(qiáng)大,很多公司都在使用。

當(dāng)然小伙伴們可以用別的監(jiān)控工具,只要數(shù)據(jù)上報協(xié)議,和監(jiān)控報表輸出功能即可,當(dāng)然也要有報警的功能,及時給運(yùn)維人員報告

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

在可以設(shè)置相關(guān)的報警規(guī)則,如:某個key一直被調(diào)用,在一段時間內(nèi)操作次數(shù)太高。這樣就可以方便排查哪些key導(dǎo)致cpu負(fù)載太高,就可以去看一下設(shè)置這個key的代碼,有沒有什么問題?是不是死循環(huán)等問題?

十二、截斷異常

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

Redis實(shí)戰(zhàn)的常見問題和解決方法

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

十三、總結(jié)

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    590

    瀏覽量

    22229
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    386

    瀏覽量

    11437
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Redis集群部署與性能優(yōu)化實(shí)戰(zhàn)

    Redis作為高性能的內(nèi)存數(shù)據(jù)庫,在現(xiàn)代互聯(lián)網(wǎng)架構(gòu)中扮演著關(guān)鍵角色。作為運(yùn)維工程師,掌握Redis的部署、配置和優(yōu)化技能至關(guān)重要。本文將從實(shí)戰(zhàn)角度出發(fā),詳細(xì)介紹Redis集群的搭建、性
    的頭像 發(fā)表于 07-08 17:56 ?211次閱讀

    Redis實(shí)戰(zhàn)筆記

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

    機(jī)房空調(diào)—機(jī)房送風(fēng)與回風(fēng)設(shè)計(jì)常見問題和解決方法

    機(jī)房送風(fēng)與回風(fēng)設(shè)計(jì)是確保機(jī)房穩(wěn)定運(yùn)行的重要環(huán)節(jié)。然而,在實(shí)際設(shè)計(jì)和應(yīng)用中,常常會遇到一些問題。下面聊一下機(jī)房送風(fēng)與回風(fēng)設(shè)計(jì)常見問題。 一、送風(fēng)系統(tǒng)設(shè)計(jì)常見問題 1、送風(fēng)口布局不合理
    的頭像 發(fā)表于 02-07 10:37 ?603次閱讀
    機(jī)房空調(diào)—機(jī)房送風(fēng)與回風(fēng)設(shè)計(jì)<b class='flag-5'>常見問題</b><b class='flag-5'>和解決方法</b>

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

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

    gitee 常見問題解決方法

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

    mac的常見問題解決方法

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

    Ubuntu系統(tǒng)常見問題解決方法

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

    multisi的常見問題解決方法

    遇到各種問題。 1. 啟動順序問題 問題描述: 用戶在安裝多系統(tǒng)后,發(fā)現(xiàn)默認(rèn)啟動順序不符合預(yù)期,導(dǎo)致無法正常進(jìn)入某個操作系統(tǒng)。 解決方法: 修改啟動順序: 進(jìn)入BIOS設(shè)置,找到啟動順序(Boot Order)選項(xiàng),調(diào)整各個操作系統(tǒng)的啟動順序。
    的頭像 發(fā)表于 12-09 11:07 ?732次閱讀

    VLAN 配置中的常見問題解決

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

    Mobaxterm 常見問題解決方法

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

    UCD90xxx系列常見問題和解

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

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

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

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

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

    HSHA驅(qū)動器報警的常見問題解決方法

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

    pcb設(shè)計(jì)中遇到的常見問題解決方法

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