成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

NoSQL架構實踐(三) 以NoSQL為緩存

數據庫 其他數據庫 數據庫運維
由于NoSQL數據庫天生具有高性能、易擴展的特點,所以我們常常結合關系數據庫,存儲一些高性能的、海量的數據。從另外一個角度看,根據NoSQL的高性能特點,它同樣適合用于緩存數據。用NoSQL緩存數據可以分為內存模式和磁盤持久化模式。

在《NoSQL架構實踐》系列的前面兩篇文章中,介紹了《以NoSQL為主》和《以NoSQL為輔》的架構。由于NoSQL數據庫天生具有高性能、易擴展的特點,所以我們常常結合關系數據庫,存儲一些高性能的、海量的數據。從另外一個角度看,根據NoSQL的高性能特點,它同樣適合用于緩存數據。用NoSQL緩存數據可以分為內存模式和磁盤持久化模式。

內存模式

說起內存模式緩存,我們自然就會想起大名鼎鼎的Memcached。在互聯網發展過程中,Memcached曾經解救了數據庫的大部分壓力,做出了巨大的貢獻,直到今天,它依然是緩存服務器的首選。Memcached的常見使用方式類似下面的代碼:

 

Memcached提供了相當高的讀寫性能,一般情況下,都足夠應付應用的性能要求。但是基于內存的Memcached緩存的總數據大小受限于內存的大小。

當前如日中天、討論得異常火熱的NoSQL數據庫Redis又為我們提供了功能更加強大的內存存儲功能。跟Memcached比,Redis的一個key的可以存儲多種數據結構Strings、Hashes、Lists、Sets、Sorted sets。Redis不但功能強大,而且它的性能完全超越大名鼎鼎的Memcached。Redis支持List、hashes等多種數據結構的功能,提供了更加易于使用的api和操作性能,比如對緩存的list數據的修改。

同樣,其他一些NoSQL數據庫也提供了內存存儲的功能,所以也適合用來做內存緩存。比如Tokyo Tyrant就提供了內存hash數據庫、內存tree數據庫功能,內存tree數據可根據key的順序進行遍歷。你可以通過使用其提供的兼容Memcached協議或自定義的協議來使用。

持久化模式

雖然基于內存的緩存服務器具有高性能,低延遲的特點,但是內存成本高、內存數據易失卻不容忽視。幾十GB內存的服務器,在很多公司看來,還比較奢侈。所以,我們應該根據應用的特點,盡量的提高內存的利用率,降低成本。

大部分互聯網應用的特點都是數據訪問有熱點,也就是說,只有一部分數據是被頻繁訪問的。如果全部都cache到內存中,無疑是對內存的浪費。

這時,我們可以利用NoSQL來做數據的緩存。其實NoSQL數據庫內部也是通過內存緩存來提高性能的,通過一些比較好的算法,把熱點數據進行內存cache,非熱點數據存儲到磁盤以節省內存占用。由于其數據庫結構的簡單,從磁盤獲取一次數 據也比從數據庫一次耗時的查詢劃算很多。用NoSQL數據庫做緩存服務器不但具有不錯的性能。而且還能夠Cache比內存大的數據。

使用NoSQL來做緩存,由于其不受內存大小的限制,我們可以把一些不常訪問、不怎么更新的數據也緩存起來。比如論壇、新聞的老數據、數據列表的靠后的頁面,雖然用戶訪問不多,但是搜索引擎爬蟲會訪問,也可能導致系統負載上升。

如果NoSQL持久化緩存也使用類似基于內存的memcached設置過期時間的方式,那么持久化緩存就失去了意義。所以用NoSQL做緩存的過期策略最好不使用時間過期,而是數據是否被更新過,如果數據沒有更新,那么就永久不過期。下面我們用代碼(php)演示一種實現這種策略的方法:

場景:新聞站點的評論系統。用戶對新聞頁面的url進行評論,然后根據url進行查詢展示。

 

 

 

我把上面代碼演示的緩存使用方式稱為基于版本的緩存。這種方式同樣適用于基于內存的Memcached。它能實現緩存數據的實時性,讓用戶感覺不到延遲。只要用戶一發表評論,該新聞的評論緩存就會失效。用戶很少去評論一些過時的新聞,那么緩存就一直存在于NoSQL中,避免了爬蟲訪問過時新聞的評論數據而沖擊數據庫。

總結

目前國內的新浪微博已經在大量的使用Redis緩存數據,趕集網也在大量的使用Redis。Redis作為一些List,Hashes等數據結構的緩存,非常適合。

把NoSQL當持久化Cache使用的模式,在很多大數據量、有熱點、查詢非熱點數據比較消耗資源的場景下比較有用。

NoSQL架構實踐總結

到這里,關于NoSQL架構實踐的三篇文章就結束了。NoSQL架構并不局限于我介紹的三種模式,他們之間也可以進行組合,應該根據你具體的應用場景靈活使用。不管是什么模式,都是為了解決我們的問題而出現的,所以在系統架構的時候,要問下自己,我為什么要用NoSQL;在對NoSQL架構模式選型的時候,要問下自己,我為什么要這么用NoSQL。

原文鏈接:http://www.cnblogs.com/sunli/archive/2011/03/31/nosql-architecture-practice_3.html

【編輯推薦】

  1. NoSQL架構實踐(一)以NoSQL為輔
  2. NoSQL架構實踐(二)以NoSQL為主
  3. NoSQL理論研究:內存是新的硬盤,硬盤是新的磁帶
  4. 關于NoSQL數據庫你應該知道的10件事
責任編輯:艾婧 來源: 博客園
相關推薦

2011-03-14 14:59:01

NoSQL

2011-03-14 15:56:37

NoSQL

2022-08-21 21:28:32

數據庫實踐

2011-05-13 09:46:20

MySQLNoSQL

2011-08-18 14:09:35

NoSQL

2012-02-16 09:20:19

NoSQL

2015-02-04 13:07:39

DTCC

2011-11-29 09:49:16

數據庫其他數據庫NoSQL

2012-05-15 10:28:29

NoSQL數據庫建模技術

2016-12-04 16:36:18

NoSQL數據庫大數據

2012-02-01 16:26:04

NoSQLMoreSQL數據庫

2011-10-20 13:37:46

OracleNoSQL數據庫

2011-02-22 08:49:38

NoSQL

2023-07-06 00:41:03

SQLNoSQL數據庫

2015-04-16 15:42:21

關系型數據庫NoSQL

2011-03-24 17:09:08

TrinityNoSQL

2024-02-02 10:51:53

2014-08-01 09:12:52

NoSQL

2011-05-16 09:27:10

MySQLNoSQL

2012-05-15 11:03:22

NoSQL數據建模
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色嗨嗨 | 91精品久久久久久久久 | 中文字幕第九页 | 久久久久久免费毛片精品 | 午夜影院网站 | 久久精品小短片 | 日韩毛片 | 黄在线免费观看 | 国产在线视频一区 | 国产一级在线观看 | 久久草视频 | 91精品国产自产在线老师啪 | 人人九九精 | 不卡一区二区在线观看 | 99精品国产一区二区三区 | 欧美性猛交一区二区三区精品 | 久久精品色欧美aⅴ一区二区 | 欧美日韩在线精品 | 成人在线影视 | 久久久精品综合 | 亚洲欧美国产视频 | 国产三区av| 黄视频在线网站 | 91婷婷韩国欧美一区二区 | 欧美电影大全 | 国产一区免费 | 九九久久这里只有精品 | 日本久久www成人免 成人久久久久 | 亚洲欧美在线一区 | 色综合中文 | 一区二区三区中文字幕 | 日本不卡一区二区三区在线观看 | 亚洲综合国产精品 | 国产精品一级 | 亚洲精品二区 | 久久9久 | 久久久久国产精品 | 亚洲精品一级 | 日韩美女一区二区三区在线观看 | 国产中文字幕在线 | 色久电影 |