日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis 你该懂的点

發布時間:2025/6/17 数据库 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis 你该懂的点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

頭一次用這種標題哈哈哈感覺有點。。反正這是一篇關于Redis相關知識點的Blog,面試中會問到的(比重會比較大哈),持續收集更新中

什么是Redis?

一般很少會問這個啦,一般都是問你在真實開發中,在哪兒用到了Redis,不過還是該知道的;
Redis是主流的鍵值對存儲數據庫(NoSQL),通常全部數據都存在內存中(為什么這么快的主要原因之一!),但也支持持久化策略,支持事務(資源允許的話,可以當作DB了),并且Redis支持豐富的數據類型(能夠應對大部分場景),Redis是單線程的(沒有線程安全問題,沒有鎖的煩惱)

Redis支持的數據類型

在了解Redis能做什么之前,我們先了解下Redis支持的數據類型

常用

  • Redis Key
    二進制安全的 Key
    任何二進制序列都可以作為Key,從字符到JPEG文件的內容,可以存空字符
    允許的最大值為 512 M
  • String 字符串
  • List 列表
  • Zest / Sorted Sets 有序集合
  • Set 集合
  • Hash 字典

進階

  • Bitmap / 位圖
  • HyperLogLogs / 計算唯一事物的概率數據結構

Redis 能做什么?

這是最實際的問題,也是面試中Redis的高頻問題

  • 緩存 / cache :
    加快查詢速度,存儲熱點數據
    會話緩存,用戶是否在線,通過時效性
    記錄在線人數,通過incr

  • 數據庫存儲 / Database
    沒有像 MySQL 等的I/O操作限制,支持事務,支持豐富的數據結構,不做DB存儲就太可惜了吧
    火熱排行榜: Zset
    社交列表: Set
    全局唯一ID / 計數器(每個IP請求限制等等): String 的 incr

  • 信息隊列 / message broker

    Redis也是 Pub - Sub 服務器(小聲bb,一般不會用到,有用到的,請用力噴我,讓我清醒)
    通過三個命令 SUBSCRIBE(訂閱),UNSUBSCRIBE(取消訂閱) 和 PUBLISH(發布信息) 實現了信息訂閱發布服務
    官方有個實踐案例多用戶高性能的Web聊天,使用EventMachine和Redis:鏈接

相比 memcached 有哪些優勢?

面試中總會問同類型技術的比較,Spring和Spring Boot 的區別,MyBatis 和 Hibernate 的區別啦,Redis 一般都是和 NoSQL 比較

  • memcached只支持字符,Redis 支持豐富的數據類型
  • Redis 支持持久化數據,而memcached沒有,只能存在內存中
  • memcached能緩存的內容沒有 Redis 那么靈活
    默認 Key 最大是250字節,Value 是1MB,不過官方有說明 memcached 本身就是用來存儲小塊的任意數據(字符串、對象)。這些數據可以是數據庫調用、API調用或者是頁面渲染的結果。

Redis 持久化策略

Redis 的持久化策略是面試中比較高頻的問題,Redis 中提供了兩種持久化策略,可以根據業務需求選擇其中一種,也支持兩個策略都開,當然也可以都禁用

  • RDB持久化( Reids 在內存中的數據庫記錄定時 dump 到磁盤上的 RDB 持久化)
  • AOF 持久化( Reids 的操作日志以追加的方式寫入文件)

AOF

AOF 持久化以日志的形式記錄 Redis 服務所處理的每一個寫,刪操作,以文本方式保存;Redis重啟時,會優先選擇 AOF 文件恢復數據,在服務器啟動時逐條執行 AOF 日志里的命令

RDB

以指定的時間間隔執行數據集的時間點快照。
Redis將數據集的快照保存在磁盤上,名為dump.rdb的文件。如果數據集中至少有M個更改,則可以將Redis配置為生成一次快照,或者可以手動調用 SAVEBGSAVE 命令。
下面是RDB持久化配置例子:

# 在redis配置文件中配置下面兩行,滿足其中一項就生成快照 save 60 1000 # 每分鐘,如果有1000條寫入命令,就生成快照 save 3600 10000 # 每小時,有1w條寫入命令,就生成快照 復制代碼
  • SAVE 和 BGSAVE 兩個備份(持久化)命令
    備份 redis 可以手動使用 SAVE 命令,執行 SAVE 命令會使用主進程執行快照操作,這意味著在 SAVE 的過程中,會阻塞主進程。
    使用 BGSAVE 的話,redis 會 fork 出一個子進程來執行快照操作,而不影響主進程。

  • 為什么用 RDB 持久化策略
    RDB 是 Redis 數據的一個非常緊湊的單文件時間點表示。RDB 文件非常適合備份。例如,您可能希望在最近24小時內每小時歸檔您的RDB文件。可以在發生災難時輕松恢復數據集的不同時間段的數據
    RDB非常適合災難恢復,可以將單個壓縮文件傳輸到遠端數據中心
    與AOF相比,RDB更適合 Redis 數據量大時,更快地重啟 Redis(AOF 一條條寫命令重新執行,數據量一大,能不慢嗎)

參考文獻

Redis官網
Redis:WiKi
memcached:GitHub

轉載于:https://juejin.im/post/5d5ab07ce51d4561ee1bdf6b

總結

以上是生活随笔為你收集整理的Redis 你该懂的点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。