雲資料庫Memcached
㈠ 騰訊雲的產品介紹
騰訊雲包括雲伺服器、雲資料庫、CDN、雲安全、萬象圖片和雲點播等產品。
開發者通過接入騰訊雲平台,可降低初期創業的成本,能更輕松地應對來自伺服器、存儲以及帶寬的壓力。 雲伺服器
高性能高穩定的雲虛擬機,可在雲中提供彈性可調節的計算容量,不讓計算能束縛您的想像;您可以輕松購買自定義配置的機型,在幾分鍾內獲取到新伺服器,並根據您的需要使用鏡像進行快速的擴容。
彈性web 服務
彈性Web 引擎(Cloud Elastic Engine)是一種Web 引擎服務,是一體化web 應用運行環境,彈性伸縮,中小開發者的利器。通過提供已部署好php、nginx 等基礎web 環境,讓您僅需上傳自己的代碼,即可輕松地完成web 服務的搭建。
負載均衡
騰訊雲負載均衡服務,用於將業務流量自動分配到多個雲伺服器、彈性web 引擎等計算單元的服務,幫您構建海量訪問的業務能力,以及實現高水平的業務容錯能力。騰訊雲提供公網及內外負載均衡,分別處理來自公網和雲內的業務流量分發。 雲資料庫
雲資料庫(CDB:Cloud Data Base)是騰訊雲平台提供的面向互聯網應用的數據存儲服務。
Nosql 高速存儲
騰訊NoSQL 高速存儲,是騰訊自主研發的極高性能、內存級、持久化、分布式的Key-Value存儲服務。NoSQL 高速存儲以最終落地存儲來設計,擁有資料庫級別的訪問保障和持續服務能力。支持Memcached 協議,能力比Memcached 強(能落地),適用Memcached、TTServer 的地方都適用NoSQL 高速存儲。NoSQL 高速存儲解決了內存數據可靠性、分布式及一致性上的問題,讓海量訪問業務的開發變得簡單快捷。
對象存儲服務(beta)
對象存儲服務(COS:Cloud Object Service),是騰訊雲平台提供的對象存儲服務。COS 為開發者提供安全、穩定、高效、實惠的對象存儲服務,開發者可以將任意動態、靜態生成的數據,存放到COS 上,再通過HTTP 的方式進行訪問。COS 的文件訪問介面提供全國范圍內的動態加速,使開發者無需關注網路不同所帶來的體驗問題。
CDN
CDN(Content Delivery Network)即內容分發網路。騰訊CDN 服務的目標與一般意義上的CDN 服務是一樣的,旨在將開發者網站中提供給終端用戶的內容(包括網頁對象—文本、圖片、腳本,可下載的對象—多媒體文件、軟體、文檔,等等),發布到多個數據中心的多台伺服器上,使用戶可以就近取得所需的內容,提高用戶訪問網站的響應速度。 雲監控
騰訊雲監控是面向騰訊雲客戶的一款監控服務,能夠對客戶購買的雲資源以及基於騰訊雲構建的應用系統進行實時監測。開發人員或者系統管理員可以通過騰訊雲監控收集各種性能指標,了解其系統運行的相關信息,並做出實時響應,保證自己的服務正常運行。
騰訊雲監控提供了可靠,靈活的監控解決方案,當您首次購買雲服務後,不需要任何設置,就可以獲得基礎監控指標,同時,也可以通過簡單的步驟後,獲取到更多的個性化指標。除了豐富的監控指標視圖以外,騰訊雲監控還提供個性化的告警服務,客戶可以對任意監控指標自定義告警策略。通過簡訊,郵件,微信等方式,實時推送故障告警。
騰訊雲監控也是一個開放式的監控平台,支持用戶上報個性化的指標,提供多個維度,多種粒度的實時數據統計以及告警分析。並提供開放式的API,讓客戶通過介面也能夠獲取到監控數據。
雲安全
騰訊公司安全團隊在處理各種安全問題的過程中積累了豐富的技術和經驗,騰訊雲安全將這些寶貴的安全技術和經驗打造成優秀的安全服務產品,為開發商提供業界領先的安全服務。騰訊雲安全能夠幫助開發商免受各種攻擊行為的干擾和影響,讓客戶專注於自己創新業務的發展,極大的降低了客戶在基礎環境安全和業務安全上的投入和成本。
雲撥測
雲撥測依託騰訊專有的服務質量監測網路,利用分布於全球的服務質量監測點,對用戶的網站,域名,後台介面等進行周期性監控, 並提供實時告警, 性能和可用性視圖展示,智能分析等服務。 TOD 大數據處理
TOD 是騰訊雲為用戶提供的一套完整的、開箱即用的雲端大數據處理解決方案。開發者可以在線創建數據倉庫,編寫、調試和運行SQL 腳本,調用MR程序,完成對海量數據的各種處理。另外開發者還可以將編寫的數據處理腳本定義成周期性執行的任務,通過可視化界面拖拽定義任務間依賴關系,實現復雜的數據處理工作流。主要應用於海量數據統計、數據挖掘等領域。已經為微信、QQ 空間、廣點通、騰訊游戲、財付通、QQ 網購等關鍵業務的提供了數據分析服務。
騰訊雲分析
騰訊雲分析是一款專業的移動應用統計分析工具,支持主流智能手機平台。開發者可以方便地通過嵌入統計SDK,實現對移動應用的全面監測,實時掌握產品表現,准確洞察用戶行為。不僅僅是記錄,移動APP 統計還分析每個環節,利用數據透過現象看本質。騰訊雲分析還同時提供業內市場排名趨勢、競品排名監控等情報信息,讓您在應用開發運營過程中,知己知彼,百戰百勝。
騰訊雲搜
騰訊雲搜(Tencent Cloud Search)是騰訊公司基於在搜索領域多年的技術積累,對公司內部各大垂直搜索業務搜索需求進行高度抽象, 把搜索引擎組件化、平台化、服務化,最終形成成熟的搜索對外開放能力,為廣大移動應用開發者和網站站長推出的一站式結構化數據搜索託管服務。 移動加速
移動加速服務是騰訊雲針對終端應用提供的訪問加速服務,通過加速機房、優化路由演算法、動態數據壓縮等多重措施提升移動應用的訪問速度和用戶體驗,並為客戶提供了加速效果展示、趨勢對比、異常告警等運營工具隨時了解加速效果。
應用加固
應用加固服務是騰訊雲依託多年終端安全經驗,提供的一項終端應用安全加固服務。具有操作簡單、多渠道監控、防反編譯防篡改防植入、零影響的特點,幫助用戶保護應用版權和收入。
騰訊雲安全認證
騰訊雲安全認證是騰訊雲提供的免費安全認證服務,通過申請審核的用戶將獲得權威的騰訊雲認證展示,讓您的業務獲得騰訊億萬用戶的認可。免費安全服務,權威認證展示,騰訊雲已為2.6萬網站、應用保駕護航。
信鴿推送
信鴿(XG Push)是一款專業的免費移動App 推送平台,支持百億級的通知/ 消息推送,秒級觸達移動用戶,現已全面支持Android 和iOS 兩大主流平台。開發者可以方便地通過嵌入SDK,通過API 調用或者Web 端可視化操作,實現對特定用戶推送,大幅提升用戶活躍度,有效喚醒沉睡用戶,並實時查看推送效果。
域名備案
騰訊雲備案服務,幫助您將網站在工信部系統中進行登記,獲得備案證書懸掛在網站底部。目前支持企業、個人、政府機關、事業單位、社會團體備案。
雲API
雲API 是構建雲開放生態重要的一環。騰訊雲提供的計算、數據、運營運維等基礎能力,包括雲伺服器、雲資料庫、CDN 和對象存儲服務等,以及騰訊雲分析(MTA)、騰訊雲推送(信鴿)等大數據運營服務等,都將以標準的開放API 的形式提供給廣大企業和開發者使用,方便開發者集成和二次開發。
萬象圖片
萬象圖片是將QQ空間相冊積累的十年圖片經驗開放給開發者,提供專業一體化的圖片解決方案,涵蓋圖片上傳、下載、存儲、圖像處理。
維納斯
維納斯(Wireless Network Service)專業的移動網路接入服務,使用騰訊骨幹網路,全國400個節點,連通成功率99.9%。
雲點播
騰訊雲一站式視頻點播服務,匯聚騰訊強大視頻處理能力。從靈活上傳到快速轉碼,從便捷發布到自定義播放器開發,為客戶提供專業可靠的完整視頻服務。
㈡ 阿里雲redis 一個可以建立多個資料庫嗎
redis 是一個高性能的key-value資料庫。 redis的出現,很大程度補償了memcached這類keyvalue存儲的不足,在部 分場合可以對關系資料庫起到很好的補充作用。它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便。
問題是這個項目還很新,可能還不足夠穩定,redis 是一個高性能的key-value資料庫。
redis的出現,很大程度補償了memcached這類keyvalue存儲的不足,在部 分場合可以對關系資料庫起到很好的補充作用。
它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便。問題是這個項目還很新,可能還不足夠穩定,而且沒有在實際的一些大型系統應用的實例。此外,缺乏mc中批量get也是比較大的問題,始終批量獲取跟多次獲取的網路開銷是不一樣的。
㈢ 雲資料庫 redis 版需要多大的
1.
redis
是一個高性能的key-value資料庫。
2.
redis的出現,很大程度補償了memcached這類keyvalue存儲的不足,在部
分場合可以對關系資料庫起到很好的補充作用。
3.
它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便。問題是這個項目還很新,可能還不足夠穩定,而且沒有在實際的一些大型系統應用的實例。
4.
此外,缺乏mc中批量get也是比較大的問題,始終批量獲取跟多次獲取的網路開銷是不一樣的。
㈣ 雲計算學習該怎麼入門
雲計算是基於互聯網的相關服務的增加、使用和交互模式,通常涉及通過互聯網來提供動態易擴展且經常是虛擬化的資源。學習雲計算推薦選擇【達內教育】。
【雲計算的學習】一般包含五大階段:
雲計算第一階段:主要學習網路基礎,包括計算機網路、雲計算網路,配備有企業級項目實戰:IP地址配置與DNS解析。
雲計算第二階段:學習linux基礎,包括Linux操作系統以及Linux高級管理。企業級項目實戰為:雲數據中心主機CPU資源利用率實時統計、分析系統。
雲計算第三階段:學習Linux運維自動化,企業級項目實戰為Python+Shell實現企業級FTP文件統一管理。
雲計算第四階段:資料庫運維管理的學習,企業級項目實戰:MySQLGalera高可用集群環境部署、非同步消息隊列集群RabbitMQ部署與運維。
雲計算第五階段:企業級雲架構管理與綜合實戰(PaaS+TaaS),項目訓練的是基於LAMP架構實現雲計算PaaS平台典型應用部署與運維,通過Nginx實現千萬級並發訪問處理。感興趣的話點擊此處,免費學習一下
想了解更多有關雲計算入門知識的相關信息,推薦咨詢【達內教育】。作為國內IT培訓的領導品牌,達內的每一名員工都以「幫助每一個學員成就夢想」為己任,也正因為達內人的執著與努力,達內已成功為社會輸送了眾多合格人才,為廣大學子提供更多IT行業高薪機會,同時也為中國IT行業的發展做出了巨大的貢獻。達內IT培訓機構,試聽名額限時搶購。
㈤ 阿里雲資料庫redis怎麼配置
根據下面步驟創建適應業務需求的雲資料庫Redis版實例。
使用下列方法中任意一種打開購買頁:
打開雲資料庫Redis版產品首頁,單擊立即購買。
說明如果尚未登錄阿里雲賬號,單擊立即購買後需要先使用阿里雲賬號和密碼登錄。
登錄Redis管理控制台,單擊右上角的創建實例。
設置以下參數。
選擇密碼設置方式。
立即設置:在下方的輸入密碼區域設置密碼。
稍後設置:創建實例後再修改密碼。
設置實例名稱、購買數量,如果創建包年包月實例,還需設置時長。
在確認訂單頁,閱讀《雲資料庫KVStore版服務協議》,確認接受後在服務協議前的選框中單擊勾選。
單擊去開通。
因為這方面內容較多,這里也寫不開那麼多內容,所以你可以留言或到我的博客上搜索相關內容,老魏有寫過教程,還不止一篇,都挺詳細的內容,可以幫助你入門。
㈥ Linux雲計算培訓學習內容包括哪些
以下是比較經典的Linux編程學習路線:
第一階段:linux基礎入門
1. 開班課程介紹-規章制度介紹-破冰活動;
2. Linux硬體基礎/Linux發展歷史;
3. Linux系統安裝/xshell連接/xshell優化/SSH遠程連接故障問題排查
4. 第一關一大波命令及特殊字元知識考試題講解
5. L inux基礎優化
6. Linux目錄結構知識精講
7. 第二關一大波命令及特殊知識考試題講解(上)
8. 第二關一大波命令及特殊知識考試題講解(下)
9. Linux文件屬性一大堆知識精講
10. Linux通配符/正則表達式
11. 第三關一大波命令及重要知識考試題講解(上)
12. 第三關一大波命令及重要知識考試題講解(下)
13. Linux系統許可權(上)
14. Linux系統許可權(下)
15. 第一階段結束需要導師或講師對整體課程進行回顧
第二階段:linux系統管理進階
1. Linux定時任務
2. Linux用戶管理
3. Linux磁碟與文件系統(上)
4. Linux磁碟與文件系統(中下)
5. Linux三劍客之sed命令
第三階段:Linux Shell基礎
1. Shell編程基礎1
2. Shell編程基礎234
3. Linux三劍客之awk命令
第四階段:Linux網路基礎
1. 計算機網路基礎上
2. 計算機網路基礎下
3. 第二階段結束需要導師或講師對整體課程進行回顧。
第五階段:Linux網路服務
1. 集群實戰架構開始及環境准備
2. rsync數據同步服務
3. Linux全網備份項目案例精講
4. nfs網路存儲服務精講
5. inotify/sersync實時數據同步/nfs存儲實時備份項目案例精講
第六階段:Linux重要網路服務
1. http協議/www服務基礎
2. nginx web介紹及基礎實踐
3. nginx web精講結束
4. lnmp環境部署/資料庫異機遷移/共享數據異機遷移到NFS系統
5. nginx負載均衡深入透徹
6. keepalived高可用深入透徹
第七階段:Linux中小規模集群構建與優化(50台)
1. 期中架構開戰說明+期中架構部署回顧
2. 全體晝夜兼程部署期中架構並完成上台述職演講(加上兩個周末共9天)
3. kickstart cobbler 批量自動安裝系統
4. pptp vpn與ntp服務
5. memcached原理及部署/作為緩存及session會話共享
第八階段:Ansible自動化運維與Zabbix監控
1. SSH服務秘鑰認證
2. ansible批量自動化管理集群(入門及深入)
3. zabbix監控
第九階段:大規模集群高可用服務(Lvs、Keepalived)
1. Centos7系統自行安裝/centos6與7區別
2. lvs負載均衡集群/keepalived管理LVS集群
第十階段:java Tomcat服務及防火牆Iptables
1. iptables防火牆精講上
2. iptables防火牆精講下
3. tomcat java應用服務/nginx配合tomcat服務部署及優化
第十一階段:MySQL DBA高級應用實踐
1. MySQL資料庫入門基礎命令
2. MySQL資料庫進階備份恢復
3. MySQL資料庫深入事務引擎
4. MySQL資料庫優化SQL語句優化
5. MySQL資料庫集群主從復制/讀寫分離
6. MySQL資料庫高可用/mha/keepalved
第十二階段:高性能資料庫Redis和Memcached課程
第十三階段:Linux大規模集群架構構建(200台)
第十四階段:Linux Shell編程企業案例實戰
第十五階段:企業級代碼發布上線方案(SVN和Git)
1. GIT管理
2. 代碼上線項目案例
第十六階段企業級Kvm虛擬化與OpenStack雲計算
1. KVM虛擬化企業級實戰
2. OpenStack雲計算企業級實戰
第十七階段公有雲阿里雲8大組件構建集群實戰
第十八階段:Docker技術企業應用實踐
1. Docker容器與微服務深入實踐
2. 大數據Hadoop生態體系及實踐
第十九階段:Python自動化入門及進階
第二十階段:職業規劃與高薪就業指導
㈦ 有人用memcached出過這種問題么
1、key-value的限制
緩存的key有長度限制,key的組成有特定字元的限制。
緩存的value必須可以序列化,且緩存的單一value容量有大小限制,對於可序列化的value,應該想方設法盡量規避某些特定數據結構,比如Hashtable,DataTable這些內部其實非常非常之復雜的數據結構。對於讀頻繁的操作來說,每次序列化和反序列化復雜數據結構的開銷可想而知。
如果連分布式緩存的key和value(尤其是value)的一般限制都搞錯了,那麼使用緩存的後果很可能只是白白增加了網路IO及序列化、反序列化的開銷,對系統性能提升當然是巨大的反作用。
2、小心Memcached的.net客戶端的誤用
這一點隱藏的也比較深,下面以應用廣泛的EnyimMemcached為例來簡單說明。
通常我們使用的客戶端每次實例化MemcachedClient對象內部都會初始化一個客戶端對象池(TCP連接池,客戶端命名為ServerPool)。所謂TCP連接池就是將創建好的TCP連接(連接數通常按照配置來,生產環境的配置不會小於兩位數)初始化放在容器內,客戶端調用的時候可以直接拿出已經存在的TCP連接來用,這樣可以省去實時打開TCP連接的開銷。
因為有人喜歡using一下(當然包括樓主自己了),一看到MemcachedClient是繼承自IDisposable的,必須用using啊,然後就要new一個MemcachedClient對象,這樣客戶端內部也就不得不再初始化一個TCP連接池。如果某個使用緩存的服務方法調用頻繁,很快你就會發現系統CPU飆升,頁面打開速度奇慢,直至不能正常訪問。
我們知道,分布式緩存系統都有一個TCP連接上限的設置,無論如何,超過這個上限都有可能引發連環反應,這種反應毫無疑問是不良副作用。
所以如果我們誤用MemcachedClient,每次都new一個對象,那麼高並發情況下效果就非常慘了,一方面web伺服器因為TCP連接過多無法正常訪問,另一方面Memcached伺服器也因為連接太多負載過重而性能變得極差,依賴Memcached的服務很可能短時間內只接收到超時響應。
解決方案無比簡單,配置合適的TCP連接數,MemcachedClient對象單例即可。
最後還要重申選擇使用緩存的業務場景的重要性。這一點真的無法說透,但是根據一些已有經驗,可以提煉出兩條比較通用的緩存准則:
1、寫頻繁的數據不適合緩存;
2、讀頻繁而寫不頻繁的數據適合緩存。
果然正確的話都是廢話,上面兩條等於沒說。
怕你們說無聊,還是要奉獻兩條自己使用緩存的主要准則,當然只是自己一家之言經驗之談,不可全信,切記,否則被總監勸退老子概不負責:
1、適合緩存的數據通常應該對外公開供(所有)人調用,私有的數據緩存多數情況下是沒有意義的;
2、對准確性、實時性、安全性等要求極高的業務數據,你的數據可能不適合緩存。
順帶再提一下web開發中的性能問題。據說如果一個網站有性能問題,那麼它一定會出現性能問題。資料庫、緩存、消息隊列、各種框架、com組件等等等等,這些web開發中的標配,有哪個使用不當不會引發系統的性能問題呢?甚至大家習以為常的拼接字元串在特定條件下都會造成系統崩潰。我們也知道生產環境就像國際政治一樣錯綜復雜波譎雲詭,測試環境、UAT環境通過並不能保證系統諸事無虞,應該時刻認識到coding無小事,否則一個疏忽就有可能造成生產環境發生悲劇乃至慘劇。
㈧ 四大開源資料庫是哪些
開源世界中的那幾個免費資料庫
發布時間:2011-11-22 09:34:30 來源:CSDN 評論:0 點擊:1476 次 【字型大小:大 中 小】
QQ空間 新浪微博 騰訊微博 人人網 豆瓣網 網路空間 網路搜藏 開心網 復制 更多 0
開源資料庫MySQLMySQL是一個開放源碼的小型關聯式資料庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源...
開源資料庫MySQL
MySQL是一個開放源碼的小型關聯式資料庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。
盤點:開源社區那些免費的資料庫軟體
MySQL為多種編程語言提供了API,包括C、C++、C#、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。而其自身是採用C和C++編寫的,使用了多種編譯器進行測試,所以,MySQL能夠保證源代碼具有很強的可移植性。這樣的一款資料庫,自然能夠支持幾乎所有的操作系統,從Unix、Linux到Windows,具體包括AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows等多種操作系統。最重要的是,它是一個可以處理擁有上千萬條記錄的大型資料庫。
與此同時,MySQL也產生了很多分支版本的資料庫也非常值得推薦。
首先是MariaDB,它是一個採用Maria存儲引擎的MySQL分支版本,是由原來MySQL的作者 Michael Widenius創辦的公司所開發的免費開源的資料庫伺服器。與MySQL相比較,MariaDB更強的地方在於它擁有更多的引擎,包括Maria存儲引擎、PBXT存儲引擎、XtraDB存儲引擎、FederatedX存儲引擎,它能夠更快的復制查詢處理、運行的速度更快、更好的功能測試以及支持對Unicode的排序等。
其次是rcona,它為MySQL資料庫伺服器進行了改進,在功能和性能上較MySQL有著很顯著的提升。該版本提升了在高負載情況下的InnoDB的性能,同時,它還為DBA提供一些非常有用的性能診斷工具,並且提供很多參數和命令來控制伺服器行為。
第三是Percona Server,它使用了諸如google-mysql-tools、Proven Scaling和 Open Query對MySQL進行改造。並且,它只包含MySQL的伺服器版,並沒有提供相應對 MySQL的Connector和GUI工具進行改進。
非關系型資料庫NoSQL
從NoSQL的字面上理解,NoSQL就是Not Only SQL,被業界認為是一項全新的資料庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲。NoSQL的擁護者們提倡運用非關系型的數據存儲,相對於目前鋪天蓋地的關系型資料庫運用,這一概念無疑是一種全新的思維的注入。
盤點:開源社區那些免費的資料庫軟體
當然,NoSQL也是隨著互聯網Web2.0網站的興起才能取得長足的進步。關鍵的需求在於,傳統的關系資料庫在應付Web2.0網站,特別是超大規模和高並發的SNS類型的web2.0純動態網站顯得力不從心,暴露了很多難以克服的問題,而非關系型的資料庫則由於其本身的特點得到了非常迅速的發展。
首先推薦的是Oracle NoSQL Database,這是一個社區版。Oracle的這個NoSQL Database, 是在10月4號的甲骨文全球大全上發布的Big Data Appliance的其中一個組件,Big Data Appliance是一個集成了Hadoop、NoSQL Database、Oracle資料庫Hadoop適配器、Oracle資料庫Hadoop裝載器及R語言的系統。
其次推薦的是Membase。Membase是NoSQL家族的一個新的重量級的成員。Membase是開源項目,源代碼採用了Apache2.0的使用許可。該項目託管在GitHub.Source tarballs上,目前可以下載beta版本的Linux二進制包。該產品主要是由North Scale的memcached核心團隊成員開發完成,其中還包括Zynga和NHN這兩個主要貢獻者的工程師,這兩個組織都是很大的在線游戲和社區網路空間的供應商。
並且,Membase容易安裝、操作,可以從單節點方便的擴展到集群,而且為memcached(有線協議的兼容性)實現了即插即用功能,在應用方面為開 發者和經營者提供了一個比較低的門檻。做為緩存解決方案,Memcached已經在不同類型的領域(特別是大容量的Web應用)有了廣泛的使用,其中 Memcached的部分基礎代碼被直接應用到了Membase伺服器的前端。通過兼容多種編程語言和框架,Membase具備了很好的復用性。在安裝和配置方面,Membase提供了有效的圖形化界面和編程介面,包括可配置 的告警信息。
Membase的目標是提供對外的線性擴展能力,包括為了增加集群容量,可以針對統一的節點進行復制。 另外,對存儲的數據進行再分配仍然是必要的。
第三推薦的是Hibari。Hibari在日語中意思為「雲雀」,它是一個專為高可靠性和大數據存儲的資料庫引擎,可用於雲計算環境中,例如 webmail、SNS和其他要求T/P級數據存儲的環境中。同時,Hibari也支持Java,C/C++,Python,Ruby和Erlang語言的客戶端。
第四推薦的是memcachedb。這是一個由新浪網的開發人員開放出來的開源項目,給memcached分布式緩存伺服器添加了Berkeley DB的持久化存儲機制和非同步主輔復制機制,讓memcached具備了事務恢復能力、持久化能力和分布式復制能力,非常適合於需要超高性能讀寫速度,但是 不需要嚴格事務約束,能夠被持久化保存的應用場景,例如memcachedb被應用在新浪博客上面。
第五推薦的是Leveldb。這是一個Google實現的非常高效的kv資料庫,目前的版本1.2能夠支持billion級別的數據量了。 在這個數量級別下還有著非常高的性能,主要歸功於它的良好的設計,特別是LSM演算法。LevelDB是單進程的服務,性能非常之高,在一台4個Q6600的CPU機器上,每秒鍾寫數據超過40w,而隨機讀的性能每秒鍾超過10w。
XML資料庫的優勢
XML資料庫是一種支持對XML格式文檔進行存儲和查詢等操作的數據管理系統。在系統中,開發人員可以對資料庫中的XML文檔進行查詢、導出和指定格式的序列化。目前XML資料庫有三種類型:XMLEnabledDatabase(XEDB),即能處理XML的資料庫;NativeXMLDatabase(NXD),即純XML資料庫;HybridXMLDatabase(HXD),即混合XML資料庫。
關系資料庫中的第一代XML支持是切分(或分解)文檔,以適應關系表格或將文檔原封不動地存儲為字元或二進制大對象(CLOB 或 BLOB)。這兩個方法中的任一種都嘗試將XML模型強制轉換成關系模型。然而,這兩種方法在功能和性能上都有很大的局限性。混合型模型將XML存儲在類似於DOM的模型中。XML數據被格式化為緩沖數據頁,以便快速導航和執行查詢以及簡化索引編制。
在這里,首要要推薦的XML資料庫是Sedna。它號稱是一款原生態的XML資料庫,提供了全功能的核心資料庫服務,包括持久化存儲、ACID事務、索引、安全、熱備、UTF8等。實現了 W3C XQuery 規范,支持全文搜索以及節點級別的更新操作。
第二款XML資料庫是BaseX。這款資料庫用來存儲緊縮的XML數據,提供了高效的 XPath和XQuery的實現,同時,它還提供一個前端操作界面。
盤點:開源社區那些免費的資料庫軟體
第三款推薦的是XMLDB。這款資料庫使用了關系型資料庫來存儲任意的XML文檔,因為所採用的存儲機制,所以文檔的搜索速度特別快,同時執行XSL轉換也相當快。XMLDB同時還提供了一個PHP的模塊,可以應用在Web應用中。
第四塊推薦的是X-Hive/DB。它是一個為需要高級XML數據處理和存儲功能的軟體開發者設計的強大的專屬XML資料庫。X-Hive/DB Java API包含存儲、查詢、檢索、轉換和發表XML數據的方法。
與傳統關系型資料庫相比,XML資料庫具有以下優勢:第一,XML資料庫能夠對半結構化數據進行有效的存取和管理。如網頁內容就是一種半結構化數據,而傳統的關系資料庫對於類似網頁內容這類半結構化數據無法進行有效的管理。第二,提供對標簽和路徑的操作。傳統資料庫語言允許對數據元素的值進行操作,不能對元素名稱操作,半結構化資料庫提供了對標簽名稱的操作,還包括了對路徑的操作。第三,當數據本身具有層次特徵時,由於XML數據格式能夠清晰表達數據的層次特徵,因此XML資料庫便於對層次化的數據進行操作。XML資料庫適合管理復雜數據結構的數據集,如果己經以XML格式存儲信息,則XML資料庫利於文檔存儲和檢索;可以用方便實用的方式檢索文檔,並能夠提供高質量的全文搜索引擎。另外XML資料庫能夠存儲和查詢異種的文檔結構,提供對異種信息存取的支持。
㈨ 為什麼memcached會使用swap
這次故障是memcached伺服器引起的。這台雲伺服器購買時間是2013-02-21,操作系統是CentOS 6.2 64位,配置是1核CPU/4G內存。memcached軟體用的是couchbase,版本是2.0.0 enterprise edition (build-1976)。memcached客戶用的是EnyimMemcached,版本是2.12。
如何確認是memcached伺服器引起的?昨天17:00左右(還在訪問高峰期),只要這台memcached雲伺服器一停運,問題立即消失;一啟來,問題立即出現。
這次故障與couchbase無關。依據是同樣版本的couchbase安裝到另一台雲伺服器(操作系統是CentOS 6.3 64位)上,問題沒有出現。現在的memcached伺服器就是這么跑的。
我們來看看應用程序中對memcached的操作情況,使用memcached的地方都是這么操作的——根據key從memcached中取數據,如果取到,直接返回;如果取不到,從資料庫中查詢,將查詢結果寫入memcached,然後返回。示例代碼如下:
var entry = _cacher.GetData(cacheKey) as BlogEntry;
if (entry == null)
{
//從資料庫讀取
//...
_cacher.Add(cacheKey, entry, 60);
}
return entry;
而上面代碼中 _cacher.GetData(cacheKey) 實際調用的是 Enyim.Caching.Memcache.MemcachedClient.Get() 方法。
如果這里等待時間長,會造成大量處理請求的線程阻塞在這里(堵車),造成正在處理請求的得不到響應,後續的請求沒有足夠的線程可用。
前天晚上(4月23日)我們已經採取了措施,以防這里存在可能的堵車問題,在web.config中修改了EnyimMemcached的設置,將connectionTimeout改為了1秒(默認是20秒)。
<enyim.com>
<memcached protocol="Binary">
<servers>
<add address="ip1" port="11211" />
</servers>
<socketPool minPoolSize="20" maxPoolSize="200" connectionTimeout="00:00:01" deadTimeout="00:00:02" />
</memcached>
</enyim.com>
也就是說,即使發生堵車現象,也只會等1秒,然後就繞到而行,直接去資料庫取數據。
但昨天發生故障時connectionTimeout沒起作用,說明客戶端已經正常連上了memcached伺服器,問題不在客戶端。
與coubase無關,與memcached客戶端無關,那就剩下兩個懷疑對象:1. Linux操作系統(搬到阿里雲之前,我們是在Windows上跑的Memcached);2. 虛擬機。
這時,一個故障期間的重要現象閃現在眼前——當時memcached的磁碟IO高!
memcached緩存的數據都在內存中,而且內存佔用並不高,磁碟IO怎麼會高?太奇怪了!
。。。
通過google搜索「memcached read timeout」,找到柳暗花明的線索——memcached timeout error because of slow response
直接看關鍵文字:
The problem seemed to boil down to the following:
vm.swappiness=60 (default) is a very bad idea, when combined
with deadline as a io scheler.
...
conclusion:
if you use memcache and need high amounts of memory with
many objects, keep a look at your swap, and if there is
something in it (even 1 kb) - it might be too much.
after setting vm.swappiness to zero and paging in all swap,
the effects were gone.
登上昨天引發故障的那台memcached伺服器,運行命令:
cat /proc/sys/vm/swappiness
60
輸出結果是60!磁碟IO高就是內存交換引起的!memcached堵車的原因就在這!
只要將swappiness設置為0,就能解決問題,設置方法參考:Adjust Your swappiness。