成人免费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

2013-09-09 09:57:04

大數據NoSQL數據庫

2011-05-16 09:27:10

MySQLNoSQL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美黑人狂野猛交老妇 | 一区二区三区日 | 成年男女免费视频网站 | 日本精品一区二区三区视频 | 欧美成人精品在线 | 黄色片在线 | 成人免费激情视频 | 色黄网站 | 日本网站在线看 | 亚洲日韩欧美一区二区在线 | 欧美一级在线 | 国产一区二区三区免费视频 | 免费一区| 影视一区 | 秋霞国产 | 99国产精品久久久久 | a级大片免费观看 | 国产麻豆乱码精品一区二区三区 | 精品欧美一区二区在线观看 | av一区在线 | 欧美精品一区三区 | 国产欧美日韩一区 | 久久久精品一区二区三区 | 国产精品99久久免费观看 | 国产欧美日韩一区二区三区在线 | a精品视频| 亚洲一在线 | 色婷婷综合在线观看 | 成人福利网 | 韩日一区二区 | av在线一区二区 | 久久精品国产一区二区电影 | 久久精品视频网站 | 午夜影院污 | 欧美一区二区三区久久精品 | 精品一区二区久久久久久久网精 | 欧美日韩精品在线免费观看 | 国产精品久久久久久久久久久久冷 | 久久r久久| 免费视频一区二区 | www亚洲免费国内精品 |