亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

redis中token失效引發(fā)的一次生產事故

 更新時間:2024年03月25日 14:59:26   作者:搬山道猿  
項目再測試的時候發(fā)現不定時token失效,本文主要介紹了redis中token失效引發(fā)的一次生產事故,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧

問題描述:

發(fā)版后回歸測試,不定時出現token失效,導致自動退出到登錄界面。

如果操作的人員較多,token失效的就比較快,操作的人員較少token失效的相對較慢。

問題復現:

同一賬號多人操作:很快就會出現token失效

不同賬號多人操作:很快就會出現token失效

單個賬號操作:較長時間出現token失效

問題排查:

檢查和token相關的一系列配置,查看是否配置問題

  • token的有效時長:設置的是48小時-----正常
  • 是否允許多個登錄:設置允許多方登錄-----正常

token是存儲于redis緩存中的,重新登錄,檢查生成的token是否正常存儲于redis。redis中新生成的token的過期時間是48小時左右,所以可以排除自身到期淘汰的原因。

讓開發(fā)人員檢查代碼中是否有token相關的操作。

都不是這些原因,所有能想到的都已經排除了,真的頭大。

再次讓業(yè)務人員一起操作,然后我也登錄,記錄自己的token ,redis中token信息一切正常,再次退出登錄的時候發(fā)現redis中這個token也消失了。

這時候可以確定 是redis中的token丟失而導致失效,從而退出登錄。

至于為什么會丟失,還是沒有頭緒。

確認原因

然后問了下運維同事,幫忙看看redis有什么特殊的情況,這一看就有結果了:redis內存基本快滿了,而且沒有做預警,大家都不知道。

查了下有什么大key或者熱key占用了這么多的內存

發(fā)現系統(tǒng)中另一個服務占用了redis極大的內存,如下

這個服務是公司基礎架構的服務,里面的功能日志是通過redis模式傳輸的,然后在讀取redis落庫以達到異步解耦。落庫成功就會刪除redis, 而且有個定時任務負責落庫,刪除redis。而我們因為不了解細節(jié) 沒有啟用這個定時任務(也可以說壓根不知道這玩意的存在),才導致了這個結果。

為什么就不能設置一個過期時間呢,為什么!

直接讓運維同事刪除這些緩存,然后多人操作系統(tǒng) 再試試是否會出現token失效,結果是一切正常,也不會退出登錄了。

為什么

redis內存不足,為什么會刪除我的數據而不是報寫入錯誤呢

這個就和redis的內存淘汰策略有關了, redis默認的淘汰策略是noeviction 不淘汰數據,新增或者修改操作拋異常,而我們的環(huán)境設置的是volatile-lru

redis是內存工具,所以在內存快要用完的時候,怎么去取舍已存入的數據和即將要存入的數據,redis官方提供了8種淘汰策略,配置是maxmemory-policy 。

所有的策略如下

  • volatile-lru:在設置過期時間的數據中淘汰最少使用的數據。

  • allkeys-lru:在所有的數據中淘汰最少使用的數據。

  • volatile-lfu:在設置過期時間的數據中淘汰使用頻率最低的數據。

  • allkeys-lfu:在所有的數據中淘汰使用使用頻率最低的數據。

  • volatile-random:在設置過期時間的數據中淘汰任意隨機數據。

  • allkeys-random:在所有的數據中隨機淘汰數據。

  • volatile-ttl:在設置過期時間的數據中淘汰最早過期的數據。

  • noeviction:默認策略,不淘汰數據,新增或者修改數據會拋異常,但是讀操作正常進行,不受影響

所以對于redis的使用需要小心,避免寫入沒有過期時間的數據!即使一定要存入永久數據,也要預估數據的大小,判斷是否會隨著時間不斷增加!增加內存監(jiān)控,設置報警閾值,提前發(fā)現問題。

到此這篇關于redis中token失效引發(fā)的一次生產事故的文章就介紹到這了,更多相關redis token失效內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Redis連接失?。嚎蛻舳薎P不在白名單中的問題分析與解決方案

    Redis連接失?。嚎蛻舳薎P不在白名單中的問題分析與解決方案

    在現代分布式系統(tǒng)中,Redis作為一種高性能的內存數據庫,被廣泛應用于緩存、消息隊列、會話存儲等場景,然而,在實際使用過程中,我們可能會遇到各種連接問題,其中“客戶端IP不在白名單中”是一個常見的錯誤,本文將從錯誤分析、原因排查、解決方案等詳細探討如何解決這一問題
    2025-01-01
  • redis持久化的介紹

    redis持久化的介紹

    今天小編就為大家分享一篇關于redis持久化的介紹,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 大家都應該知道的Redis過期鍵與過期策略

    大家都應該知道的Redis過期鍵與過期策略

    這篇文章主要給大家介紹了一些應該知道的Redis過期鍵與過期策略的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Redis具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-11-11
  • 生產redisson延時隊列不消費問題排查解決

    生產redisson延時隊列不消費問題排查解決

    這篇文章主要為大家介紹了生產redisson延時隊列不消費問題排查解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Redission實現分布式鎖lock()和tryLock()方法的區(qū)別小結

    Redission實現分布式鎖lock()和tryLock()方法的區(qū)別小結

    Redisson是一種基于Redis的分布式鎖框架,提供了lock()和tryLock()兩種獲取鎖的方法,本文主要介紹了Redission實現分布式鎖lock()和tryLock()方法的區(qū)別小結,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • Redis的使用模式之計數器模式實例

    Redis的使用模式之計數器模式實例

    這篇文章主要介紹了Redis的使用模式之計數器模式實例,本文講解了匯總計數器、按時間匯總的計數器、速度控制、使用 Hash 數據類型維護大量計數器等內容,需要的朋友可以參考下
    2015-03-03
  • Redis的5種數據類型與常用命令講解

    Redis的5種數據類型與常用命令講解

    今天小編就為大家分享一篇關于Redis的5種數據類型與常用命令講解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Redis反序列化失敗的解決方法

    Redis反序列化失敗的解決方法

    在使用Redis緩存數據的過程中,有時會遇到反序列化失敗的問題,本文主要介紹了Redis反序列化失敗的解決方法,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • Windows下Redis安裝配置教程

    Windows下Redis安裝配置教程

    這篇文章主要為大家詳細介紹了Windows下Redis安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Linux Redis 的安裝步驟詳解

    Linux Redis 的安裝步驟詳解

    這篇文章主要介紹了 Linux Redis 的安裝步驟詳解的相關資料,希望大家通過本文能掌握如何安裝Redis,需要的朋友可以參考下
    2017-08-08

最新評論