共計(jì) 1243 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。
自動(dòng)寫代碼機(jī)器人,免費(fèi)開通
這篇文章主要介紹 redis 性能高的原因,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
(1)redis 是非關(guān)系型內(nèi)存數(shù)據(jù)庫數(shù)據(jù)存儲(chǔ)于內(nèi)存中,內(nèi)存讀取速度非??欤绻皇呛唵蔚?key-value,內(nèi)存不是瓶頸。一般情況下,hash 查找可以達(dá)到每秒數(shù)百萬次的數(shù)量級(jí)。
(2)采用單線程,避免了不必要的上下文切換和競(jìng)爭(zhēng)條件。
(3)內(nèi)部實(shí)現(xiàn)采用 epoll,采用了 epoll+ 自己實(shí)現(xiàn)的簡單的事件框架。epoll 中的讀、寫、關(guān)閉、連接都轉(zhuǎn)化成了事件,然后利用 epoll 的多路復(fù)用特性,絕不在 io 上浪費(fèi)一點(diǎn)時(shí)間。
擴(kuò)展閱讀
Redis 是一個(gè)開源的使用 ANSI C 語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value 數(shù)據(jù)庫,并提供多種語言的 API。從 2010 年 3 月 15 日起,Redis 的開發(fā)工作由 VMware 主持。從 2013 年 5 月開始,Redis 的開發(fā)由 Pivotal 贊助。
redis 是一個(gè) key-value 存儲(chǔ)系統(tǒng)。和 Memcached 類似,它支持存儲(chǔ)的 value 類型相對(duì)更多,包括 string(字符串)、list(鏈表)、set(集合)、zset(sorted set – 有序集合) 和 hash(哈希類型)。這些數(shù)據(jù)類型都支持 push/pop、add/remove 及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis 支持各種不同方式的排序。與 memcached 一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是 redis 會(huì)周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了 master-slave(主從) 同步。
Redis 是一個(gè)高性能的 key-value 數(shù)據(jù)庫。redis 的出現(xiàn),很大程度補(bǔ)償了 memcached 這類 key/value 存儲(chǔ)的不足,在部 分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫起到很好的補(bǔ)充作用。它提供了 Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang 等客戶端,使用很方便。
Redis 支持主從同步。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器。這使得 Redis 可執(zhí)行單層樹復(fù)制。存盤可以有意無意的對(duì)數(shù)據(jù)進(jìn)行寫操作。由于完全實(shí)現(xiàn)了發(fā)布 / 訂閱機(jī)制,使得從數(shù)據(jù)庫在任何地方同步樹時(shí),可訂閱一個(gè)頻道并接收主服務(wù)器完整的消息發(fā)布記錄。同步對(duì)讀取操作的可擴(kuò)展性和數(shù)據(jù)冗余很有幫助。
redis 的官網(wǎng)地址,非常好記,是 redis.io。(特意查了一下,域名后綴 io 屬于國家域名,是 british Indian Ocean territory,即英屬印度洋領(lǐng)地)。
目前,Vmware 在資助著 redis 項(xiàng)目的開發(fā)和維護(hù)。
以上是 redis 性能高的原因的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!
向 AI 問一下細(xì)節(jié)
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!