REmote DIctionary Server(Redis) 是一個由 Salvatore Sanfilippo 寫的 key-value 儲存系統。Redis 提供了一些豐富的資料結構,包括 lists, sets, ordered sets 以及 hashes ,當然還有和 Memcached 一樣的 strings 結構 . Redis 當然還包括了對這些資料結構的豐富操作。
文章推薦
Redis 對外的資料結構包括:字串(string)、雜湊(hash)、列表(list)、集合(set)以及有序集合(zset)。這些資料結構都有對應的 API 可以在客戶端使用。如上每一種資料結構在 Redis 內部又對應不只一種內部編碼實現。Redis 根據儲存的資料選擇比較合適的內部編碼以實現記憶體與效能之間的平衡。
《解決Redis連線報錯"ERR max number of clients reached"》
redis
使用過程當中一般會由客戶端進行連線資源管理,例如分配連線、監控連線狀態、回收連線池資源- 預設設定下,
redis
不會主動斷開連線redis
的timeout
引數配置項,預設單位是秒,當timeout
是0的時候,redis
不會主動關閉連線- 由於
redis
預設的最大連線數是10000,但是一直不關閉連線的話隨著時間推移,連線越積越多,最終導致沒有連線可用最終導致
redis
客戶端連線的時候報錯,顯示"ERR max number of clients reached"
《掘地三尺搞定 Redis 與 MySQL 資料一致性問題》
Redis 擁有高效能的資料讀寫功能,被我們廣泛用在快取場景,一是能提高業務系統的效能,二是為資料庫抵擋了高併發的流量請求。
把 Redis 作為快取元件,需要防止出現以下的一些問題,否則可能會造成生產事故。
Redis 快取滿了怎麼辦?
快取穿透、快取擊穿、快取雪崩如何解決?
Redis 資料過期了會被立馬刪除麼?
Redis 突然變慢了如何做效能排查並解決?
Redis 與 MySQL 資料一致性問題怎麼應對?
Redis 作為一種記憶體型的非關係型的資料庫,不管在網際網路大廠,小廠,大專案和小專案中,幾乎都會被使用。為什麼 Redis 會受到如此青睞呢?關於這個問題,可能很多的程式設計師只是看著別人用而用,缺乏對 Redis 一個全面的瞭解。
某天突然收到運維告警訊息,反饋產線有介面在某一段時間慢了,隨之效能最佳化的JIRA任務也開過來了,大致內容如下:
API告警 - Base Tomcat Accesslog: 微服務: xxxapi 介面: /xxxx/xxx POST 在 [ 2022/xx/xx 10:42:00 ~ 10:43:00 ] 時間視窗,RT > 閾值(300ms) 發生 141 次。
公司內部對API的響應時間要求是低於300ms,超過的都屬於有效能問題的介面,接下來就排查吧。
Redis 主從模式中,一個高可用的 Redis 服務由一個 Redis 主節點( Master,後續簡稱為主節點)和若干 Redis 從節點(Slave,後續簡稱為從節點)組成。
Redis 中採用讀寫分離來保證主節點和從節點之間的資料一致性,具體實現如下...
Redis 除了做快取,還能幹很多很多事情:分散式鎖、限流、處理請求介面冪等性。。。太多太多了~
今天想和小夥伴們聊聊用 Redis 處理介面限流,這也是最近的 TienChin 專案涉及到這個知識點了,我就拎出來和大家聊聊這個話題,後面影片也會講。
Redis 是一個支援持久化的記憶體資料庫,透過持久化機制把記憶體中的資料同步到硬碟檔案來保證資料持久化。當 Redis 重啟後透過把硬碟檔案重新載入到記憶體,就能達到恢復資料的目的。
實現:單獨建立一個 fork()子程式,將當前父執行緒的資料庫檔案複製到子程式的記憶體中,然後由子程式寫入到臨時檔案中,持久化的過程就結束了,再用這個臨時檔案替換上次的快照檔案,然後子程式退出,記憶體釋放。
問答推薦
- Redis快取哪些資料?
- Redis如何合理快取部門資訊
- redis的訂閱、釋出中,訊息傳送是順序和阻塞的嗎?
- redis處理使用者簽到問題
- redis 開啟lazy-free機制,內部是否加鎖了?
- 秒殺系統 php + redis 庫存與資料庫如何保持一致?
- Redis雪崩之後如何處理?
- 群發訊息如何實現使用者未讀條數?
- Redisson哨兵配置啟動失敗
PS:大家想看哪些方面的技術內容,可以在評論區留言喔 ~
如有問題可以新增小姐姐微信~