真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用Redis做緩存的原因有哪些

這篇文章給大家分享的是有關(guān)使用redis做緩存的原因有哪些的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的惠水網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

對Redis,百度百科給出的的解釋是

“Redis(Remote Dictionary Server ),即遠程字典服務(wù),是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API”

“Redis 是一個高性能的key-value數(shù)據(jù)庫。 redis的出現(xiàn),很大程度補償了memcached這類key/value存儲的不足,在部 分場合可以對關(guān)系數(shù)據(jù)庫起到很好的補充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便?!?/p>

那么,Redis有什么優(yōu)點

  • Redis支持數(shù)據(jù)持久化

  • Redis的讀寫性能非常優(yōu)異

  • 豐富的特性:可用于緩存,消息,按key設(shè)置過期時間,過期后將會自動刪除

  • 支持事務(wù),Redis的所有操作都是原子性的,同時Redis還支持對幾個操作合并后的原子性執(zhí)行。

  • Redis的數(shù)據(jù)結(jié)構(gòu)豐富,除了支持string類型的value外還支持hash、set、zset、list等數(shù)據(jù)結(jié)構(gòu)。

相對應的,Redis也有缺點

  • 數(shù)據(jù)庫容量會受到物理內(nèi)存的限制,不能用作海量數(shù)據(jù)的高性能讀寫,因此Redis適合的場景主要局限在較小數(shù)據(jù)量的高性能操作和運算上。

  • Redis 不具備自動容錯和恢復功能,主機從機的宕機都會導致前端部分讀寫請求失敗,需要等待機器重啟或者手動切換前端的IP才能恢復。

  • 如果主機宕機,宕機前有部分數(shù)據(jù)未能及時同步到從機,切換IP后還會引入數(shù)據(jù)不一致的問題,降低了系統(tǒng)的可用性。

  • Redis 較難支持在線擴容

  • Redis是單線程的,單臺服務(wù)器無法充分利用多核服務(wù)器的CPU

為什么我們要使用Redis呢?

從高并發(fā)上來說:

  • 直接操作緩存能夠承受的請求是遠遠大于直接訪問數(shù)據(jù)庫的,所以我們可以考慮把數(shù)據(jù)庫中的部分數(shù)據(jù)轉(zhuǎn)移到緩存中去,這樣用戶的一部分請求會直接到緩存這里而不用經(jīng)過數(shù)據(jù)庫

從高性能上來說:

  • 用戶第一次訪問數(shù)據(jù)庫中的某些數(shù)據(jù)。因為是從硬盤上讀取的所以這個過程會比較慢。將該用戶訪問的數(shù)據(jù)存在緩存中,下一次再訪問這些數(shù)據(jù)的時候就可以直接從緩存中獲取了。操作緩存就是直接操作內(nèi)存,所以速度相當快。如果數(shù)據(jù)庫中的對應數(shù)據(jù)改變的之后,同步改變緩存中相應的數(shù)據(jù)

為什么要使用Redis而不是其他的,例如Java自帶的 map 或者 guava

  • 緩存分為本地緩存和分布式緩存。以 Java 自帶的 map 或者 guava為例子, 實現(xiàn)的是本地緩存,最主要的特點是輕量以及快速,生命周期隨著 jvm 的銷毀而結(jié)束,并且在多實例的情況下,每個實例都需要各自保存一份緩存,緩存不具有一致性。

  • 使用 redis 或 memcached 之類的稱為分布式緩存,在多實例的情況下,各實例共用一份緩存數(shù)據(jù),緩存具有一致性。缺點是需要保持 redis 或 memcached服務(wù)的高可用,整個程序架構(gòu)上較為復雜。

Redis為什么這么快

  • 完全基于內(nèi)存,絕大部分請求是純粹的內(nèi)存操作,非??焖佟?shù)據(jù)存在內(nèi)存中

  • 數(shù)據(jù)結(jié)構(gòu)簡單,對數(shù)據(jù)操作也簡單

  • 采用單線程,避免了不必要的上下文切換和競爭條件,也不存在多進程或者多線程導致的切換而消耗 CPU

  • 使用多路 I/O 復用模型,非阻塞 IO

感謝各位的閱讀!關(guān)于“使用Redis做緩存的原因有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


標題名稱:使用Redis做緩存的原因有哪些
轉(zhuǎn)載來源:http://weahome.cn/article/pjhehs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部