91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

一、前言

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

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

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

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

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

二、Redis集群劃分

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

獨(dú)立Redis集群

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

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

公共Redis集群

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

三、問題

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

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

多業(yè)務(wù)間用Redis,會(huì)出現(xiàn)很多緩存Key,根本沒法知道哪些key是屬于哪個(gè)業(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ī)劃的,但兩個(gè)不同的團(tuán)隊(duì),技術(shù)和管理都不一樣,即使有規(guī)范文檔,但不同的業(yè)務(wù)團(tuán)隊(duì)間,規(guī)范的執(zhí)行就不得而知。

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

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

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

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

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

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

七、如何截?cái)喈惓?/p>

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

八、解決方案

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

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

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

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

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

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

上圖就是定義一個(gè)二次封裝接口

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

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

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

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

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

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

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

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

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

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

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

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

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

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

十二、截?cái)喈惓?/p>

在上面的發(fā)現(xiàn)異常的基礎(chǔ)上面,如果發(fā)現(xiàn)某些業(yè)務(wù)應(yīng)用,不正常,就可以立即發(fā)起截?cái)嘣摽蛻舳说恼?qǐng)求,這樣可以保證其他業(yè)務(wù)不受影響。這里我們使用客戶端方式去實(shí)現(xiàn)截?cái)唷T硪埠芎?jiǎn)單,在Redis二次封裝的類中,我們需要判斷本機(jī)是否在黑名單中,如果存在,則無(wú)法操作方法,或報(bào)異常。

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

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

十三、總結(jié)

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

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

    關(guān)注

    1

    文章

    596

    瀏覽量

    23165
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    392

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    ODF配線架常見故障及解決方法

    ODF配線架常見故障及解決方法如下: 一、接地故障 故障表現(xiàn): 防雷性能下降,靜電積累,甚至引發(fā)設(shè)備損壞。 光信號(hào)傳輸不穩(wěn)定,出現(xiàn)誤碼或中斷。 常見原因: 接地端子氧化、松動(dòng)或接觸不良。 接地線
    的頭像 發(fā)表于 01-05 10:43 ?318次閱讀

    Keithley吉時(shí)利6511常見故障排查及解決方法

    Keithley吉時(shí)利6511作為一款精密測(cè)量?jī)x器,在長(zhǎng)期使用中可能會(huì)遇到各種故障。以下是該設(shè)備常見故障的排查思路及解決方法,幫助用戶快速定位問題并恢復(fù)設(shè)備正常運(yùn)行。 ? ? 一、常見故障及排查步驟
    的頭像 發(fā)表于 11-21 18:47 ?908次閱讀
    Keithley吉時(shí)利6511<b class='flag-5'>常見</b>故障排查及<b class='flag-5'>解決方法</b>

    晶振使用中常見問題解決方法

    一、頻偏造成的使用異常異?,F(xiàn)象:色彩圖像不正常;音頻雜音,無(wú)數(shù)據(jù)傳輸,距離短,遙控?zé)o反應(yīng)。常見處理:換一個(gè)就OK根本原因:晶振負(fù)載電容同電路不匹配。解決辦法:調(diào)整電路匹配電容大小,或換用不同負(fù)載電容
    的頭像 發(fā)表于 11-21 15:37 ?3997次閱讀
    晶振使用中<b class='flag-5'>常見問題</b>與<b class='flag-5'>解決方法</b>

    VCS安裝教程及常見問題和解決辦法

    一、簡(jiǎn)要介紹 在對(duì)蜂鳥E203處理器進(jìn)行運(yùn)行系統(tǒng)級(jí)仿真測(cè)試時(shí),可以利用VCS這一編譯型仿真工具來(lái)對(duì)運(yùn)行E203的模擬測(cè)試。本文即介紹在Linux系統(tǒng)中,進(jìn)行模擬測(cè)試途中出現(xiàn)的一系列常見問題
    發(fā)表于 10-27 07:58

    大華電源程控常見問題解決方法

    在電源負(fù)載這類測(cè)試測(cè)量?jī)x器的使用過(guò)程中,常常會(huì)涉及到上位機(jī)程控,以實(shí)現(xiàn)自動(dòng)化測(cè)試的目的。 在儀器和上位機(jī)的通訊過(guò)程中,有些工程師會(huì)發(fā)現(xiàn)電源和電腦無(wú)法建立通訊的情況,在此我們給出一些簡(jiǎn)單的排查方法
    的頭像 發(fā)表于 10-13 15:19 ?534次閱讀

    半導(dǎo)體制造防震基座安裝RC 銑孔常見問題解決方法-江蘇泊蘇系統(tǒng)集成有限公司

    在半導(dǎo)體制造防震基座安裝的 RC 銑孔操作中,即使嚴(yán)格遵循操作規(guī)程,仍可能因材料特性、設(shè)備狀態(tài)或環(huán)境變化出現(xiàn)各類問題。以下是常見問題的成因分析及針對(duì)性解決方法,確保銑孔質(zhì)量符合高精度
    的頭像 發(fā)表于 08-21 15:53 ?790次閱讀
    半導(dǎo)體制造防震基座安裝RC 銑孔<b class='flag-5'>常見問題</b>及<b class='flag-5'>解決方法</b>-江蘇泊蘇系統(tǒng)集成有限公司

    ZYNQ UltraScalePlus RFSOC QSPI Flash固化常見問題說(shuō)明

    璞致 ZYNQ UltraScalePlus RFSOC QSPI Flash 固化常見問題說(shuō)明
    發(fā)表于 08-08 15:49 ?0次下載

    氫氣傳感器維護(hù)常見問題解決方法

    傳感器維護(hù)中的六大常見故障現(xiàn)象,結(jié)合典型應(yīng)用場(chǎng)景,提供系統(tǒng)化的診斷方法和解決方案。 一、零點(diǎn)漂移問題診斷與校準(zhǔn) 在石油化工企業(yè)的日常監(jiān)測(cè)中,某加氫站工作人員發(fā)現(xiàn)傳感器在無(wú)氫環(huán)境下的輸出信號(hào)持續(xù)偏高,24小時(shí)內(nèi)漂
    的頭像 發(fā)表于 07-27 22:29 ?934次閱讀

    PCBA代工避坑指南:常見問題+解決方案全解析

    一站式PCBA加工廠家今天為大家講講PCBA代工代購(gòu)元器件常見問題有哪些?PCBA代工代購(gòu)元器件常見問題及解決方案。隨著科技的不斷發(fā)展和市場(chǎng)需求的變化,越來(lái)越多的企業(yè)選擇通過(guò)外包方式進(jìn)行PCBA生產(chǎn)
    的頭像 發(fā)表于 07-09 09:38 ?746次閱讀

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

    Redis作為高性能的內(nèi)存數(shù)據(jù)庫(kù),在現(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 ?849次閱讀

    電機(jī)常見的噪音、振動(dòng)問題及解決方法

    ,甚至引發(fā)安全隱患。本文將系統(tǒng)分析電機(jī)常見的噪音和振動(dòng)問題,并提供切實(shí)可行的解決方法。 ? 一、電機(jī)噪音問題及解決方法 電機(jī)噪音主要來(lái)源于電磁噪音、機(jī)械噪音和空氣動(dòng)力噪音三個(gè)方面。 1. 電磁噪音 電磁噪音是由于電機(jī)內(nèi)部
    的頭像 發(fā)表于 06-08 10:25 ?3559次閱讀

    電機(jī)常見故障分析及解決方法

    電機(jī)在運(yùn)行過(guò)程中可能會(huì)出現(xiàn)多種故障,以下是一些常見故障的分析及解決方法: 一、機(jī)械故障 1. 軸承損壞或磨損 ? ?● 故障表現(xiàn):電機(jī)運(yùn)轉(zhuǎn)不平穩(wěn),產(chǎn)生異響,嚴(yán)重時(shí)甚至停轉(zhuǎn)。 ? ?● 原因分析:通常
    的頭像 發(fā)表于 04-25 15:20 ?5581次閱讀
    電機(jī)<b class='flag-5'>常見</b>故障分析及<b class='flag-5'>解決方法</b>

    deepin 25系統(tǒng)安裝常見問題

    隨著 deepin 25 系列版本的發(fā)布,我們特別推出 deepin Q&A 常見問題指南,旨在幫助您輕松應(yīng)對(duì)安裝、升級(jí)及使用過(guò)程中可能遇到的常見問題。
    的頭像 發(fā)表于 04-14 14:08 ?5657次閱讀
    deepin 25系統(tǒng)安裝<b class='flag-5'>常見問題</b>

    激光焊接十大常見缺陷及解決方法

    無(wú)所不能,有時(shí)也會(huì)因?yàn)椴僮骰蛘邊?shù)設(shè)定上的原因,導(dǎo)致加工出現(xiàn)差錯(cuò)。只有充分了解這些缺陷并學(xué)習(xí)如何避免它們,才能更好地發(fā)揮激光焊接的價(jià)值。以下是激光焊接過(guò)程中常見的十大缺陷及其解決方法。 ?1. 焊接飛濺 ● 缺陷表現(xiàn)
    的頭像 發(fā)表于 03-17 16:02 ?5864次閱讀

    321Y驅(qū)動(dòng)器的常見故障及解決方法

    ? 321Y驅(qū)動(dòng)器常見故障及解決方法 ?: ? 過(guò)載故障 ? ? 現(xiàn)象 ?:驅(qū)動(dòng)器連續(xù)使用超過(guò)額定負(fù)載兩倍時(shí),會(huì)產(chǎn)生異常警報(bào)?1。 ? 解決方法 ?:降低負(fù)載、調(diào)整減速箱傳動(dòng)比、增加電動(dòng)機(jī)容量等?1
    的頭像 發(fā)表于 03-07 15:50 ?1797次閱讀