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

歡迎訪問 生活随笔!

生活随笔

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

数据库

【Redis 开发与运维】初识 Redis

發布時間:2023/12/10 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Redis 开发与运维】初识 Redis 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、什么是 Redis ?
  • 二、Redis 的特性
  • 三、Redis 典型使用場景
    • Redis 可以做什么
    • Redis 不可以做什么
  • 四、為什么單線程還能這么快
    • 單線程要注意的問題


一、什么是 Redis ?

Redis(全稱:Remote Dictionary Server 遠程字典服務)是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫。


二、Redis 的特性

  • 速度快
    • 所有數據都存放在內存中
    • C語言實現
    • 單線程架構
  • 基于鍵值對的數據結構服務器
    • 支持字符串、哈希、列表、集合、有序集合、BitMaps(位圖)、HyperLogLog(超小內存唯一值計數)、GEO(地理信息定位)
  • 功能豐富
    • 發布訂閱、Lua腳本、事務、pipeline
  • 簡單穩定
    • 源碼少,早期版本只有 2 萬行左右,3.0 版本之后增加了集群特性,代碼增至 5 萬行左右
    • 單線程模型
    • 不依賴操作系統中的類庫
  • 客戶端語言多
    • 支持 Java、php、python、ruby、lua、nodeJS…
  • 持久化
    • Redis 所有數據保存在內存當中,對數據的更新將異步地保存到磁盤上。
  • 主從復制
    • 支持主從復制,后面文章介紹
  • 高可用、分布式
    • Redis-Sentinel 支持高可用,后面文章介紹
    • Redis-Cluster 支持分布式,后面文章介紹

    三、Redis 典型使用場景

    Redis 可以做什么

  • 緩存
    • 緩存機制幾乎在所有的大型網站都有使用,合理地使用緩存不僅可以加快數據的訪問速度,而且能夠有效的降低后端數據源的壓力。Redis 提供了鍵值過期時間設置,并且也提供了靈活控制最大內存和內存溢出后的淘汰策略。
  • 排行榜
    • Redis 提供了列表和有序集合數據結構,合理使用可以很方便地構建各種排行榜系統。比如按照熱度排行的微博熱搜、百度熱搜等。
  • 計數器
    • 比如微博的轉發數、評論數、點贊數等,為了保證數據的實時性,每一次都要做加 1 的操作,如果并發量很大對于傳統關系型數據的性能是一種挑戰。Redis 天然支持計數功能而且計數的性能也非常好,是計數器系統的重要選擇。
  • 社交網絡
    • 例如粉絲數、觀眾數、共同關注、時間軸列表等等,由于社交網站訪問量通常比較大,而且傳統關系型數據庫不太適合保存這種類型的數據,Redis 提供的數據結構可以相對比較容易地實現這些功能。
  • 消息隊列系統
    • Redis 提供了發布訂閱功能和阻塞隊列的功能,輕量級的消息隊列系統,一些對于消息隊列功能不是有很強要求的系統的時候,就可以使用它來實現。

    Redis 不可以做什么

    • 從數據規模角度看,因為 Redis 數據都是放在內存中的,數據量非常大并不適合 Redis 的使用場景。
    • 從數據冷熱角度看,熱數據指頻繁操作的數據,反之為冷數據。如果將冷數據放內存,那對于內存是一種浪費,將熱數據放入內存可以加速讀寫,也可降低后端負載。

    四、為什么單線程還能這么快

    通常來說,單線程處理能力要比多線程差,那 Redis 的單線程架構為什么還能這么快?

    • 純內存訪問,Redis 將所有數據放在內存中。
    • 非阻塞 I/O,Redis 使用 epoll 作為 I/O 多路復用技術的實現,不在網絡 I/O 上浪費過多時間。
    • 單線程避免了線程切換和競態產生的消耗。

    單線程要注意的問題

    • 因為是單線程,同一時間只運行一條命令,所以它拒絕長(慢)命令,單線程對于每個命令的執行時間是有要求的。如果命令執行過長,會造成其他命令的阻塞,對于 Redis 這種高性能的服務來說是致命的。

    來源:《Redis 開發與運維》第 1 章 初識 Redis

    總結

    以上是生活随笔為你收集整理的【Redis 开发与运维】初识 Redis的全部內容,希望文章能夠幫你解決所遇到的問題。

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