日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
關于rubynosql的信息

github windows 使用什么語言開發(fā)的

Github在3月19號開放了新的項目展示頁面(Showcase),Showcase根據(jù)項目屬性來組織、定義一系列的開源項目列表,可以更清晰的發(fā)現(xiàn)你所需要的開源項目。在3月26日的Showcase中,Github放出了一個新的類目:支撐Github的開源技術(shù),這里列舉了Github所使用的一些主要的開源項目。

我們提供的服務有:網(wǎng)站制作、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、涇縣ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術(shù)的涇縣網(wǎng)站制作公司

如下是這些開源項目的介紹:

linguist

語言識別庫,能夠自動根據(jù)項目的代碼來識別你所使用的語言。 在你的項目源代碼頁面,可以看到一個彩條,點開以后會顯示項目中的編程語言比例。linguist主要通過文件的后綴來識別,對于一些通用的擴展名,例如.m文件,linguist通過一些語言的特征片段來做判斷。由于編程語言很多,linguist還不能覆蓋所有語言的檢測。

jquery-pjax

pjax是Github的聯(lián)合創(chuàng)始人之一defunkt的作品,它使用html的pushState特性與ajax,可以實現(xiàn)頁面內(nèi)容動態(tài)局部刷新,當點擊項目源代碼頁面中具體的一個文件或者文件夾時,你將會看到頁面的其他部分是不變的,只有定義的頁面DOM會刷新,這里使用的就是pjax。

elasticsearch

Eleasticsearch支撐了Github的搜索功能,2年之前Github使用Solor做搜索,隨著用戶和托管項目的增加,索引的大小超過了solor節(jié)點的最大存儲空間,也出現(xiàn)了很多的問題,Github團隊在思考解決方案時決定使用Elasticsearch做替換。Github最開始使用ES時,使用了44臺亞馬遜EC2實例,每臺實例配備2T的存儲,其中8臺實例指負責查詢請求。目前,Github已經(jīng)將原有的EC搜索集群遷移到了東海岸的一個數(shù)據(jù)中心,使用8臺物理主機替換了44臺EC2。

Rails

Ruby實現(xiàn)的MVC Web框架。Github的用戶界面和功能大部分基于Rails構(gòu)建,不過需要注意的是現(xiàn)在雖然Rails的項目版本已經(jīng)發(fā)展到了Rails 4,但是Github依舊使用的是自己維護的2.3分支,對于不保持和現(xiàn)有的Rails主版本號一致的原因,Github員工Kneath做了如下的解釋:

. 花更過的時間來升級更新Rails,將會減少為用戶構(gòu)建新特性的時間,我們更關注用戶;

. 性能問題是一個很重要的考慮。在過去的幾年中,我們極大的減少了響應時間。而升級Rails不僅會帶來一個更慢的框架,而且還會引入一個不同的架構(gòu)——我們需要再根據(jù)新的框架特性來定位優(yōu)化性能。我們對于現(xiàn)有的框架已經(jīng)做了很多的優(yōu)化以保持性能穩(wěn)定,最主要的是:將時間花費在升級上不會讓我們的架構(gòu)更快。

. 過去的三年我們一直在升級這個堆棧,不升級Rails版本我們依然可以使用新的特性。

Redis

Redis是K/V存儲系統(tǒng),知名的NoSQL實現(xiàn)之一,在Github,主要使用Redis來進行隊列中的異常處理。在Github早期,曾嘗試過很多的基于Ruby的隊列機制,也曾使用Amazon SQS,但是這些方案都不能在Github快速增長的同時滿足穩(wěn)定性要求,最終Github遷移到了使用Redis的技術(shù)方案resque。

sprocket

Sprocket是一個網(wǎng)站資源打包的Ruby庫,它不僅能夠管理JavaScript和CSS資源,還可以按照pipline的方式來流式預處理CoffeeScript、Sass、SCSS和LESS代碼等;

libgit2

libgit2是一個可移植、純C語言實現(xiàn)的Git核心方法類庫,提供API重新鏈入Git方法。Github的背后使用的原生的git來實現(xiàn)commit、push等功能,但是使用libgit2來針對桌面應用調(diào)用、Ruby代碼中調(diào)用等;

rugged

libgit2的Ruby類庫;

bcrypt-ruby

OpenBSD bcypt()密碼哈希算法的Ruby實現(xiàn);

html-pipeline

html-pipline是一個gem包,可以將現(xiàn)有Github前端HTML中的一些特性進行流式處理,例如在Github的評論框中,你可以@某一個人、輸入emoji的表情、使用markdown的語法來寫內(nèi)容等,但是這些都是由單獨的插件來控制的,html-pipeline可以流式的使用相應的插件處理原始內(nèi)容,例如先將markdown轉(zhuǎn)義成html,繼而自動添加emoji表情,然后進行代碼的語法高亮等。

gemoji

在2013年的QCon北京前夜:Github Drink Up活動中,來自Github的工程師Tim在現(xiàn)場的活動中談到了他們的一個文化:使用emoji。他解釋道:“很多情感使用文字不能做出形象的表達,但是使用emoji表情卻能夠起到不一樣的效果”。在Github現(xiàn)有評論框或其他內(nèi)容中,都可以看到emoji的身影,所使用的就是gemoji這個gem包。

jekyll

Jekyll是一個靜態(tài)博客生成的程序,Github中項目的Page頁面,默認選型使用的就是jekyll。

gollum

Gollum是一套基于git的wiki系統(tǒng),Github項目的wiki系統(tǒng)背后使用的就是這套開源框架;

octokit.rb

Github API的官方Ruby SDK;

Hubot

Hubot是Github自行開發(fā)的一個聊天機器人,當然它已經(jīng)超過了聊天機器人的范疇,Github作為一個異步辦公的團隊,日常的協(xié)作、溝通很大部分依賴于聊天室,通過Hubot,Github的員工可以在聊天室中給機器人定制一些特定的回復、3D打印模型,甚至通過hubot來部署生成環(huán)境的代碼、獲取服務狀態(tài)等,在2013年的QCon北京中,Giuthub的工程曾針對如何使用Hubot做運維進行過分享:《ChatOps at GitHub》。

d3

d3是使用JavaScript實現(xiàn)的數(shù)據(jù)可視化框架,使用HTML、SVG和CSS等,在d3的基礎之上發(fā)展處諸如crossfilter、NVD3.js等一系列擴展或者簡化框架,并且形成了一個良好的社區(qū)。作者mbostock目前供職于NYTimes,d3是他的博士論文項目,目前Github使用d3來展示托管項目提交歷史、記錄等的可視化效果圖。

plax

plax是控制視差元素的JavaScript類庫,你可以在404、505等頁面看到它的實現(xiàn)效果。

ace

Ace是一個使用Javascript開發(fā)的代碼編輯器,具備語法高亮、快捷鍵綁定等特性, Github使用Ace實現(xiàn)基于web的代碼編輯功能。

zepto

Zepo是一個JavaScript框架,其特點是兼容現(xiàn)有jQuery API的同時,自身體積十分小;

zeroclipborad

Github的“點擊復制到粘貼板”的功能就是使用的zeroclipboard,zeroclipboard使用一個不可見的Adobe Flash動畫來實現(xiàn)復制粘貼,并提供Javascript的API接口以供調(diào)用。

charlock_holmes

charlock_holmes用來檢測字符編碼格式,并可以自動將字符編碼轉(zhuǎn)化成UTF-8。

puppet

服務器運維工具,可以進行自動化部署、集群管理等。

moment

moment是一個日期框架,用于解析、驗證、格式化日期等,其中一個常用的功能是將原始的Javascript時間類型轉(zhuǎn)化成方便閱讀的時間說明格式,例如:”2小時之前“、”3天之前“這種形式。

bower

前端資源包管理工具,可以通過bower install package的形式將常用的前端資源下載到本地的項目目錄中,例如:bower install bootstrap將會自動下載bootstrap的項目資源到本地的項目目錄中,不需要自己手動來下載、移動資源文件,并且通過配置文件可以方便分享給同事、簡化項目初始化等;

resque

Resque是Github Enterprise中使用的一個基于Redis的后臺作業(yè)控制系統(tǒng),提供可視化的界面,可以方便的監(jiān)控后臺作業(yè)的運行狀態(tài)和監(jiān)控情況。

另外,Github還發(fā)布了“支撐Github Windows客戶端的開源項目”和“支撐Github Mac客戶端的開源項目”兩個Showcase。

云計算架構(gòu)?

云計算架構(gòu)主要可分為四層,其中有三層是橫向的,分別是顯示層、中間件層和基礎設施層,通過這三層技術(shù)能夠提供非常豐富的云計算能力和友好的用戶界面,還有一層是縱向的,稱為管理層,是為了更好地管理和維護橫向的三層而存在的。下面介紹每個層次的作用和屬于這個層次的主要技術(shù)。

顯示層

這層主要是用于以友好的方式展現(xiàn)用戶所需的內(nèi)容,并會利用到下面中間件層提供的多種服務,主要有五種技術(shù):

HTML:標準的Web頁面技術(shù),現(xiàn)在主要以HTML4為主,但是將要推出的HTML5會在很多方面推動Web頁面的發(fā)展,比如視頻和本地存儲等方面。

JavaScript:一種用于Web頁面的動態(tài)語言,通過JavaScript,能夠極大地豐富Web頁面的功能,最流行的JS框架有jQuery和Prototype。

CSS:主要用于控制Web頁面的外觀,而且能使頁面的內(nèi)容與其表現(xiàn)形式之間進行優(yōu)雅地分離。

Flash:業(yè)界最常用的RIA(Rich Internet Applications)技術(shù),能夠在現(xiàn)階段提供HTML等技術(shù)所無法提供的基于Web的富應用,而且在用戶體驗方面,非常不錯。

Silverlight:來自業(yè)界巨擎微軟的RIA技術(shù),雖然其現(xiàn)在市場占有率稍遜于Flash,但由于其可以使用C#來進行編程,所以對開發(fā)者非常友好。

在顯示層,大多數(shù)云計算產(chǎn)品都比較傾向HTML,、JavaScript和CSS這對黃金組合,但是Flash和Silverlight等RIA技 術(shù)也有一定的用武之地,比如VMware vCloud就采用了基于Flash的Flex技術(shù),而微軟的云計算產(chǎn)品肯定會在今后使用到Silverlight。

中間件層

這層是承上啟下的,它在下面的基礎設施層所提供資源的基礎上提供了多種服務,比如緩存服務和REST服務等,而且這些服務即可用于支撐顯示層,也可以直接讓用戶調(diào)用,并主要有五種技術(shù):

REST:通過REST技術(shù),能夠非常方便和優(yōu)雅地將中間件層所支撐的部分服務提供給調(diào)用者。

多租戶:就是能讓一個單獨的應用實例可以為多個組織服務,而且保持良好的隔離性和安全性,并且通過這種技術(shù),能有效地降低應用的購置和維護成本。

并行處理:為了處理海量的數(shù)據(jù),需要利用龐大的X86集群進行規(guī)模巨大的并行處理,Google的MapReduce是這方面的代表之作。

應用服務器:在原有的應用服務器的基礎上為云計算做了一定程度的優(yōu)化,比如用于Google App Engine的Jetty應用服務器。

分布式緩存:通過分布式緩存技術(shù),不僅能有效地降低對后臺服務器的壓力,而且還能加快相應的反應速度,最著名的分布式緩存例子莫過于Memcached。

對于很多PaaS平臺,比如用于部署Ruby應用的Heroku云平臺,應用服務器和分布式緩存都是必備的,同時REST技術(shù)也常用于對外的接口, 多租戶技術(shù)則主要用于SaaS應用的后臺,比如用于支撐Salesforce的Sales Cloud等應用的Force.com多租戶內(nèi)核,而并行處理技術(shù)常被作為單獨的服務推出,比如Amazon的Elastic MapReduce。

基礎設施層

這層作用是為給上面的中間件層或者用戶準備其所需的計算和存儲等資源,主要有四種技術(shù):

虛擬化:也可以理解它為基礎設施層的“多租戶”,因為通過虛擬化技術(shù),能夠在一個物理服務器上生成多個虛擬 機,并且能在這些虛擬機之間能實現(xiàn)全面的隔離,這樣不僅能減低服務器的購置成本,而且還能同時降低服務器的運維成本,成熟的X86虛擬化技術(shù)有 VMware的ESX和開源的Xen。

分布式存儲:為了承載海量的數(shù)據(jù),同時也要保證這些數(shù)據(jù)的可管理性,所以需要一整套分布式的存儲系統(tǒng),在這方面,Google的GFS是典范之作。

關系型數(shù)據(jù)庫:基本是在原有的關系型數(shù)據(jù)庫的基礎上做了擴展和管理等方面的優(yōu)化,使其在云中更適應。

NoSQL:為了滿足一些關系數(shù)據(jù)庫所無法滿足的目標,比如支撐海量的數(shù)據(jù)等,一些公司特地設計一批不是基于關系模型的數(shù)據(jù)庫,比如Google的BigTable和Facebook的Cassandra等。

現(xiàn)在大多數(shù)的IaaS服務都是基于Xen的,比如Amazon的EC2等,但VMware也推出了基于ESX技術(shù)的vCloud,同時業(yè)界也有幾個 基于關系型數(shù)據(jù)庫的云服務,比如Amazon的RDS(Relational Database Service)和Windows Azure SDS(SQL Data Services)等。關于分布式存儲和NoSQL,它們已經(jīng)被廣泛用于云平臺的后端,比如Google App Engine的Datastore就是基于BigTable和GFS這兩個技術(shù)之上的,而Amazon則推出基于NoSQL技術(shù)的Simple DB。

管理層

這層是為橫向的三層服務的,并給這三層提供多種管理和維護等方面的技術(shù),主要有下面這六個方面:

帳號管理:通過良好的帳號管理技術(shù),能夠在安全的條件下方便用戶地登錄,并方便管理員對帳號的管理。

SLA監(jiān)控:對各個層次運行的虛擬機,服務和應用等進行性能方面的監(jiān)控,以使它們都能在滿足預先設定的SLA(Service Level Agreement)的情況下運行。

計費管理:也就是對每個用戶所消耗的資源等進行統(tǒng)計,來準確地向用戶索取費用。

安全管理:對數(shù)據(jù),應用和帳號等IT資源采取全面地保護,使其免受犯罪分子和惡意程序的侵害。

負載均衡:通過將流量分發(fā)給一個應用或者服務的多個實例來應對突發(fā)情況。 運維管理:主要是使運維操作盡可能地專業(yè)和自動化 ,從而降低云計算中心成本。

負載均衡:通過將流量分發(fā)給一個應用或者服務的多個實例來應對突發(fā)情況。

運維管理:主要是使運維操作盡可能地專業(yè)和自動化,從而降低云計算中心的運維成本。

現(xiàn)在的云計算產(chǎn)品在帳號管理,計費管理和負載均衡這三個方面大都表現(xiàn)地不錯,在這方面最突出的例子就是Amazon 的EC2,但可惜的是,大多數(shù)產(chǎn)品在SLA監(jiān)控,安全管理和運維管理等方面還有所欠缺。

舉例

接下來,將以Salesforce的Sales Cloud和Google的App Engine這兩個著名的云計算產(chǎn)品為例,來幫助大家理解本文所提到的云計算架構(gòu):

Salesforce Sales Cloud

也就是之前的Salesforce CRM(客戶關系管理),屬于云計算中的SaaS層,主要是通過在云中部署可定制化的CRM應用,來讓企業(yè)用戶在很低初始投入的情況下使用上CRM,并且 可根據(jù)自身的流程來進行靈活地定制,而且只需接入網(wǎng)絡就能使用。在技術(shù)層面上大致的架構(gòu):

采用的主要技術(shù):

顯示層:基于HTML、JavaScript和CSS這對黃金組合。

中間件層:在此層,Salesforce引入了多租戶內(nèi)核和為支撐此內(nèi)核運行而經(jīng)過定制的應用服務器。

基礎設施層:雖然在后端還是使用在企業(yè)環(huán)境中很常見的Oracle數(shù)據(jù)庫,但是其為了支撐上層的多租戶內(nèi)核做了很多的優(yōu)化。

管理層:在安全管理方面,Salesforce提供了多層保護,并支持SSL加密等技術(shù),除此之外,其還在帳號管理、計費管理和負載均衡這三方面有不錯地支持。

Google App Engine

App Engine屬于云計算中的PaaS層,其主要提供一個平臺,來讓用戶在Google強大的基礎設施上部署和運行應用程序,同時App Engine會根據(jù)應用所承受的負載來對應用所需的資源進行調(diào)整,并免去用戶對應用和服務器等的維護工作,而且支持Java和Python這兩種語言。由 于App Engine屬于PaaS平臺,所以關于顯示層的技術(shù)選擇由應用的自身需要而定,與App Engine無關,關于App Engine在技術(shù)層面上大致的架構(gòu)。

采用的主要技術(shù):

中間件層:既有經(jīng)過定制化的應用服務器,比如上面已經(jīng)提到過的Jetty,也提供基于Memcached的分布式緩存服務。

基礎設施層: 在分布式存儲GFS的基礎上提供了NoSQL數(shù)據(jù)庫BigTable來對應用的數(shù)據(jù)進行持久化。

管理層:由于App Engine是基于Google強大的分布式基礎設施,使其在運維管理技術(shù)方面非常出色,同時其計費管理能做到非常細粒度的API級計費,而且App Engine在帳號管理和負載均衡這兩方面都有非常好地支持。

以上內(nèi)容分析源自OFweek物聯(lián)網(wǎng),希望對大家有幫助。

全球四個最大的四個開源庫

開源數(shù)據(jù)庫MySQLMySQL是一個開放源碼的小型關聯(lián)式數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源...開源數(shù)據(jù)庫MySQLMySQL是一個開放源碼的小型關聯(lián)式數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。盤點:開源社區(qū)那些免費的數(shù)據(jù)庫軟件MySQL為多種編程語言提供了API,包括C、C++、C#、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。而其自身是采用C和C++編寫的,使用了多種編譯器進行測試,所以,MySQL能夠保證源代碼具有很強的可移植性。這樣的一款數(shù)據(jù)庫,自然能夠支持幾乎所有的操作系統(tǒng),從Unix、Linux到Windows,具體包括AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows等多種操作系統(tǒng)。最重要的是,它是一個可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。與此同時,MySQL也產(chǎn)生了很多分支版本的數(shù)據(jù)庫也非常值得推薦。首先是MariaDB,它是一個采用Maria存儲引擎的MySQL分支版本,是由原來MySQL的作者 Michael Widenius創(chuàng)辦的公司所開發(fā)的免費開源的數(shù)據(jù)庫服務器。與MySQL相比較,MariaDB更強的地方在于它擁有更多的引擎,包括Maria存儲引擎、PBXT存儲引擎、XtraDB存儲引擎、FederatedX存儲引擎,它能夠更快的復制查詢處理、運行的速度更快、更好的功能測試以及支持對Unicode的排序等。其次是rcona,它為MySQL數(shù)據(jù)庫服務器進行了改進,在功能和性能上較MySQL有著很顯著的提升。該版本提升了在高負載情況下的InnoDB的性能,同時,它還為DBA提供一些非常有用的性能診斷工具,并且提供很多參數(shù)和命令來控制服務器行為。第三是Percona Server,它使用了諸如google-mysql-tools、Proven Scaling和 Open Query對MySQL進行改造。并且,它只包含MySQL的服務器版,并沒有提供相應對 MySQL的Connector和GUI工具進行改進。非關系型數(shù)據(jù)庫NoSQL從NoSQL的字面上理解,NoSQL就是Not Only SQL,被業(yè)界認為是一項全新的數(shù)據(jù)庫革命性運動,早期就有人提出,發(fā)展至2009年趨勢越發(fā)高漲。NoSQL的擁護者們提倡運用非關系型的數(shù)據(jù)存儲,相對于目前鋪天蓋地的關系型數(shù)據(jù)庫運用,這一概念無疑是一種全新的思維的注入。盤點:開源社區(qū)那些免費的數(shù)據(jù)庫軟件當然,NoSQL也是隨著互聯(lián)網(wǎng)Web2.0網(wǎng)站的興起才能取得長足的進步。關鍵的需求在于,傳統(tǒng)的關系數(shù)據(jù)庫在應付Web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動態(tài)網(wǎng)站顯得力不從心,暴露了很多難以克服的問題,而非關系型的數(shù)據(jù)庫則由于其本身的特點得到了非常迅速的發(fā)展。首先推薦的是Oracle NoSQL Database,這是一個社區(qū)版。Oracle的這個NoSQL Database, 是在10月4號的甲骨文全球大全上發(fā)布的Big Data Appliance的其中一個組件,Big Data Appliance是一個集成了Hadoop、NoSQL Database、Oracle數(shù)據(jù)庫Hadoop適配器、Oracle數(shù)據(jù)庫Hadoop裝載器及R語言的系統(tǒng)。其次推薦的是Membase。Membase是NoSQL家族的一個新的重量級的成員。Membase是開源項目,源代碼采用了Apache2.0的使用許可。該項目托管在GitHub.Source tarballs上,目前可以下載beta版本的Linux二進制包。該產(chǎn)品主要是由North Scale的memcached核心團隊成員開發(fā)完成,其中還包括Zynga和NHN這兩個主要貢獻者的工程師,這兩個組織都是很大的在線游戲和社區(qū)網(wǎng)絡空間的供應商。并且,Membase容易安裝、操作,可以從單節(jié)點方便的擴展到集群,而且為memcached(有線協(xié)議的兼容性)實現(xiàn)了即插即用功能,在應用方面為開 發(fā)者和經(jīng)營者提供了一個比較低的門檻。做為緩存解決方案,Memcached已經(jīng)在不同類型的領域(特別是大容量的Web應用)有了廣泛的使用,其中 Memcached的部分基礎代碼被直接應用到了Membase服務器的前端。通過兼容多種編程語言和框架,Membase具備了很好的復用性。在安裝和配置方面,Membase提供了有效的圖形化界面和編程接口,包括可配置 的告警信息。Membase的目標是提供對外的線性擴展能力,包括為了增加集群容量,可以針對統(tǒng)一的節(jié)點進行復制。 另外,對存儲的數(shù)據(jù)進行再分配仍然是必要的。第三推薦的是Hibari。Hibari在日語中意思為“云雀”,它是一個專為高可靠性和大數(shù)據(jù)存儲的數(shù)據(jù)庫引擎,可用于云計算環(huán)境中,例如 webmail、SNS和其他要求T/P級數(shù)據(jù)存儲的環(huán)境中。同時,Hibari也支持Java,C/C++,Python,Ruby和Erlang語言的客戶端。第四推薦的是memcachedb。這是一個由新浪網(wǎng)的開發(fā)人員開放出來的開源項目,給memcached分布式緩存服務器添加了Berkeley DB的持久化存儲機制和異步主輔復制機制,讓memcached具備了事務恢復能力、持久化能力和分布式復制能力,非常適合于需要超高性能讀寫速度,但是 不需要嚴格事務約束,能夠被持久化保存的應用場景,例如memcachedb被應用在新浪博客上面。第五推薦的是Leveldb。這是一個Google實現(xiàn)的非常高效的kv數(shù)據(jù)庫,目前的版本1.2能夠支持billion級別的數(shù)據(jù)量了。 在這個數(shù)量級別下還有著非常高的性能,主要歸功于它的良好的設計,特別是LSM算法。LevelDB是單進程的服務,性能非常之高,在一臺4個Q6600的CPU機器上,每秒鐘寫數(shù)據(jù)超過40w,而隨機讀的性能每秒鐘超過10w。XML數(shù)據(jù)庫的優(yōu)勢XML數(shù)據(jù)庫是一種支持對XML格式文檔進行存儲和查詢等操作的數(shù)據(jù)管理系統(tǒng)。在系統(tǒng)中,開發(fā)人員可以對數(shù)據(jù)庫中的XML文檔進行查詢、導出和指定格式的序列化。目前XML數(shù)據(jù)庫有三種類型:XMLEnabledDatabase(XEDB),即能處理XML的數(shù)據(jù)庫;NativeXMLDatabase(NXD),即純XML數(shù)據(jù)庫;HybridXMLDatabase(HXD),即混合XML數(shù)據(jù)庫。關系數(shù)據(jù)庫中的第一代XML支持是切分(或分解)文檔,以適應關系表格或?qū)⑽臋n原封不動地存儲為字符或二進制大對象(CLOB 或 BLOB)。這兩個方法中的任一種都嘗試將XML模型強制轉(zhuǎn)換成關系模型。然而,這兩種方法在功能和性能上都有很大的局限性?;旌闲湍P蛯ML存儲在類似于DOM的模型中。XML數(shù)據(jù)被格式化為緩沖數(shù)據(jù)頁,以便快速導航和執(zhí)行查詢以及簡化索引編制。在這里,首要要推薦的XML數(shù)據(jù)庫是Sedna。它號稱是一款原生態(tài)的XML數(shù)據(jù)庫,提供了全功能的核心數(shù)據(jù)庫服務,包括持久化存儲、ACID事務、索引、安全、熱備、UTF8等。實現(xiàn)了 W3C XQuery 規(guī)范,支持全文搜索以及節(jié)點級別的更新操作。第二款XML數(shù)據(jù)庫是BaseX。這款數(shù)據(jù)庫用來存儲緊縮的XML數(shù)據(jù),提供了高效的 XPath和XQuery的實現(xiàn),同時,它還提供一個前端操作界面。盤點:開源社區(qū)那些免費的數(shù)據(jù)庫軟件第三款推薦的是XMLDB。這款數(shù)據(jù)庫使用了關系型數(shù)據(jù)庫來存儲任意的XML文檔,因為所采用的存儲機制,所以文檔的搜索速度特別快,同時執(zhí)行XSL轉(zhuǎn)換也相當快。XMLDB同時還提供了一個PHP的模塊,可以應用在Web應用中。第四塊推薦的是X-Hive/DB。它是一個為需要高級XML數(shù)據(jù)處理和存儲功能的軟件開發(fā)者設計的強大的專屬XML數(shù)據(jù)庫。X-Hive/DB Java API包含存儲、查詢、檢索、轉(zhuǎn)換和發(fā)表XML數(shù)據(jù)的方法。與傳統(tǒng)關系型數(shù)據(jù)庫相比,XML數(shù)據(jù)庫具有以下優(yōu)勢:第一,XML數(shù)據(jù)庫能夠?qū)Π虢Y(jié)構(gòu)化數(shù)據(jù)進行有效的存取和管理。如網(wǎng)頁內(nèi)容就是一種半結(jié)構(gòu)化數(shù)據(jù),而傳統(tǒng)的關系數(shù)據(jù)庫對于類似網(wǎng)頁內(nèi)容這類半結(jié)構(gòu)化數(shù)據(jù)無法進行有效的管理。第二,提供對標簽和路徑的操作。傳統(tǒng)數(shù)據(jù)庫語言允許對數(shù)據(jù)元素的值進行操作,不能對元素名稱操作,半結(jié)構(gòu)化數(shù)據(jù)庫提供了對標簽名稱的操作,還包括了對路徑的操作。第三,當數(shù)據(jù)本身具有層次特征時,由于XML數(shù)據(jù)格式能夠清晰表達數(shù)據(jù)的層次特征,因此XML數(shù)據(jù)庫便于對層次化的數(shù)據(jù)進行操作。XML數(shù)據(jù)庫適合管理復雜數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)集,如果己經(jīng)以XML格式存儲信息,則XML數(shù)據(jù)庫利于文檔存儲和檢索;可以用方便實用的方式檢索文檔,并能夠提供高質(zhì)量的全文搜索引擎。另外XML數(shù)據(jù)庫能夠存儲和查詢異種的文檔結(jié)構(gòu),提供對異種信息存取的支持。

有哪些nosql軟件能在windows平臺下運行

Membase Membase 是 NoSQL 家族的一個新的重量級的成員。Membase是開源項目,源代碼采用了Apache2.0的使用許可。該項目托管在GitHub.Source tarballs上,可以下載beta版本的Linux二進制包。該產(chǎn)品主要是由North Scale的memcached核心團隊成員開發(fā)完成,其中還包括Zynga和NHN這兩個主要貢獻者的工程師,這兩個組織都是很大的在線游戲和社區(qū)網(wǎng)絡空間的供應商。 Membase容易安裝、操作,可以從單節(jié)點方便的擴展到集群,而且為memcached(有線協(xié)議的兼容性)實現(xiàn)了即插即用功能,在應用方面為開發(fā)者和經(jīng)營者提供了一個比較低的門檻。做為緩存解決方案,Memcached已經(jīng)在不同類型的領域(特別是大容量的Web應用)有了廣泛的使用,其中 Memcached的部分基礎代碼被直接應用到了Membase服務器的前端。 通過兼容多種編程語言和框架,Membase具備了很好的復用性。在安裝和配置方面,Membase提供了有效的圖形化界面和編程接口,包括可配置 的告警信息。 Membase的目標是提供對外的線性擴展能力,包括為了增加集群容量,可以針對統(tǒng)一的節(jié)點進行復制。 另外,對存儲的數(shù)據(jù)進行再分配仍然是必要的。 這方面的一個有趣的特性是NoSQL解決方案所承諾的可預測的性能,類準確性的延遲和吞吐量。通過如下方式可以獲得上面提到的特性: ◆ 自動將在線數(shù)據(jù)遷移到低延遲的存儲介質(zhì)的技術(shù)(內(nèi)存,固態(tài)硬盤,磁盤) ◆ 可選的寫操作一一異步,同步(基于復制,持久化) ◆ 反向通道再平衡[未來考慮支持] ◆ 多線程低鎖爭用 ◆ 盡可能使用異步處理 ◆ 自動實現(xiàn)重復數(shù)據(jù)刪除 ◆ 動態(tài)再平衡現(xiàn)有集群 ◆ 通過把數(shù)據(jù)復制到多個集群單元和支持快速失敗轉(zhuǎn)移來提供系統(tǒng)的高可用性。 MongoDB MongoDB是一個介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的產(chǎn)品,是非關系數(shù)據(jù)庫當中功能最豐富,最像關系數(shù)據(jù)庫的。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bjson格式,因此可以存儲比較復雜的數(shù)據(jù)類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。它的特點是高性能、易部署、易使用,存儲數(shù)據(jù)非常方便。 主要功能特性: ◆ 面向集合存儲,易存儲對象類型的數(shù)據(jù) “面向集合”(Collenction-Oriented),意思是數(shù)據(jù)被分組存儲在數(shù)據(jù)集中,被稱為一個集合(Collenction)。每個 集合在數(shù)據(jù)庫中都有一個唯一的標識名,并且可以包含無限數(shù)目的文檔。集合的概念類似關系型數(shù)據(jù)庫(RDBMS)里的表(table),不同的是它不需要定 義任何模式(schema)。 ◆ 模式自由 模式自由(schema-free),意味著對于存儲在mongodb數(shù)據(jù)庫中的文件,我們不需要知道它的任何結(jié)構(gòu)定義。如果需要的話,你完全可以把不同結(jié)構(gòu)的文件存儲在同一個數(shù)據(jù)庫里。 ◆支持動態(tài)查詢 ◆支持完全索引,包含內(nèi)部對象 ◆支持查詢 ◆支持復制和故障恢復 ◆使用高效的二進制數(shù)據(jù)存儲,包括大型對象(如視頻等) ◆自動處理碎片,以支持云計算層次的擴展性 ◆支持RUBY,PYTHON,JAVA,C++,PHP等多種語言 ◆文件存儲格式為BSON(一種JSON的擴展) BSON(Binary Serialized document Format)存儲形式是指:存儲在集合中的文檔,被存儲為鍵-值對的形式。鍵用于唯一標識一個文檔,為字符串類型,而值則可以是各種復雜的文件類型。 ◆可通過網(wǎng)絡訪問 MongoDB服務端可運行在Linux、Windows或OS X平臺,支持32位和64位應用,默認端口為27017。推薦運行在64位平臺,因為MongoDB在32位模式運行時支持的最大文件尺寸為2GB。 MongoDB把數(shù)據(jù)存儲在文件中(默認路徑為:/data/db),為提高效率使用內(nèi)存映射文件進行管理。 Hypertable Hypertable是一個開源、高性能、可伸縮的數(shù)據(jù)庫,它采用與Google的Bigtable相似的模型。在過去數(shù)年中,Google為在PC集群 上運行的可伸縮計算基礎設施設計建造了三個關鍵部分。第一個關鍵的基礎設施是Google File System(GFS),這是一個高可用的文件系統(tǒng),提供了一個全局的命名空間。它通過跨機器(和跨機架)的文件數(shù)據(jù)復制來達到高可用性,并因此免受傳統(tǒng) 文件存儲系統(tǒng)無法避免的許多失敗的影響,比如電源、內(nèi)存和網(wǎng)絡端口等失敗。第二個基礎設施是名為Map-Reduce的計算框架,它與GFS緊密協(xié)作,幫 助處理收集到的海量數(shù)據(jù)。第三個基礎設施是Bigtable,它是傳統(tǒng)數(shù)據(jù)庫的替代。Bigtable讓你可以通過一些主鍵來組織海量數(shù)據(jù),并實現(xiàn)高效的 查詢。Hypertable是Bigtable的一個開源實現(xiàn),并且根據(jù)我們的想法進行了一些改進。 Apache Cassandra Apache Cassandra是一套開源分布式Key-Value存儲系統(tǒng)。它最初由Facebook開發(fā),用于儲存特別大的數(shù)據(jù)。Facebook在使用此系統(tǒng)。 主要特性: ◆ 分布式 ◆ 基于column的結(jié)構(gòu)化 ◆ 高伸展性 Cassandra的主要特點就是它不是一個數(shù)據(jù)庫,而是由一堆數(shù)據(jù)庫節(jié)點共同構(gòu)成的一個分布式網(wǎng)絡服務,對Cassandra 的一個寫操作,會被復制到其他節(jié)點上去,對Cassandra的讀操作,也會被路由到某個節(jié)點上面去讀取。對于一個Cassandra群集來說,擴展性能 是比較簡單的事情,只管在群集里面添加節(jié)點就可以了。 Cassandra是一個混合型的非關系的數(shù)據(jù)庫,類似于Google的BigTable。其主要功能比 Dynomite(分布式的Key-Value存 儲系統(tǒng))更豐富,但支持度卻不如文檔存儲MongoDB(介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的開源產(chǎn)品,是非關系數(shù)據(jù)庫當中功能最豐富,最像關系數(shù)據(jù)庫 的。Cassandra最初由Facebook開發(fā),后轉(zhuǎn)變成了開源項目。它是一個網(wǎng)絡社交云計算方面理想的數(shù)據(jù)庫。以Amazon專有的完全分布式的Dynamo為基礎,結(jié)合了Google BigTable基于列族(Column Family)的數(shù)據(jù)模型。P2P去中心化的存儲。很多方面都可以稱之為Dynamo 2.0。 CouchDB 所用語言: Erlang 特點:DB一致性,易于使用 使用許可: Apache 協(xié)議: HTTP/REST 雙向數(shù)據(jù)復制,持續(xù)進行或臨時處理,處理時帶沖突檢查,因此,采用的是master-master復制 MVCC – 寫操作不阻塞讀操作 可保存文件之前的版本 Crash-only(可靠的)設計 需要不時地進行數(shù)據(jù)壓縮 視圖:嵌入式 映射/減少 格式化視圖:列表顯示 支持進行服務器端文檔驗證 支持認證 根據(jù)變化實時更新 支持附件處理 因此, CouchApps(獨立的 js應用程序) 需要 jQuery程序庫 最佳應用場景:適用于數(shù)據(jù)變化較少,執(zhí)行預定義查詢,進行數(shù)據(jù)統(tǒng)計的應用程序。適用于需要提供數(shù)據(jù)版本支持的應用程序。 例如:CRM、CMS系統(tǒng)。 master-master復制對于多站點部署是非常有用的。 和其他數(shù)據(jù)庫比較,其突出特點是: ◆ 模式靈活 :使用Cassandra,像文檔存儲,你不必提前解決記錄中的字段。你可以在系統(tǒng)運行時隨意的添加或移除字段。這是一個驚人的效率提升,特別是在大型部 署上。 ◆ 真正的可擴展性 :Cassandra是純粹意義上的水平擴展。為給集群添加更多容量,可以指向另一臺電腦。你不必重啟任何進程,改變應用查詢,或手動遷移任何數(shù)據(jù)。 ◆ 多數(shù)據(jù)中心識別 :你可以調(diào)整你的節(jié)點布局來避免某一個數(shù)據(jù)中心起火,一個備用的數(shù)據(jù)中心將至少有每條記錄的完全復制。 ◆ 范圍查詢 :如果你不喜歡全部的鍵值查詢,則可以設置鍵的范圍來查詢。 ◆ 列表數(shù)據(jù)結(jié)構(gòu) :在混合模式可以將超級列添加到5維。對于每個用戶的索引,這是非常方便的。 ◆ 分布式寫操作 :有可以在任何地方任何時間集中讀或?qū)懭魏螖?shù)據(jù)。并且不會有任何單點失敗。 問度娘,啥都有。

如何架構(gòu)基于 Ruby on Rails 網(wǎng)站的實時消息系統(tǒng)

1 實時信息通知可以用輪詢或者 Long HTTP Connection 的方式,具體查google

2 message 和 group 放在mongodb 可以,比如說一個群聊放到一個 mongodb 的 document 里面,一個message 會話也可以放在一個 document 里面,但是要設計好你的數(shù)據(jù)結(jié)構(gòu),一個document最大4M。 nosql 雖然方便,但是后期sharding 也很費事

3 首頁動態(tài)刷新,這個參考1. 從服務器返回數(shù)據(jù)后,動態(tài)插入就可以

4 實時全文搜索,但假設你用 mongodb,在一定量級上可以直接用mongodb 查詢,另外對于過期數(shù)據(jù)可以做歸檔。以知乎現(xiàn)在的數(shù)據(jù)量來說,實時搜索也用不到lucene/solr。后臺任務隊列可以用redis。我原來嘗試過用mongodb 來架構(gòu)一個實時隊列,支撐過一段時間,后來爆掉了。

5 支持html5,移動設備。 這個不關架構(gòu)的事情,只要判斷瀏覽器請求頭,對不同設備提供不同的 css,或者是渲染不同的頁面。如果要是給客戶端提供API的話,統(tǒng)一用json就行,Rails 支持不同請求類型返回不同數(shù)據(jù)結(jié)構(gòu)。

6 沒有可以拿來就用的架構(gòu),要根據(jù)自己的業(yè)務結(jié)構(gòu),從簡單開始,逐步演進。


網(wǎng)站欄目:關于rubynosql的信息
網(wǎng)頁URL:http://www.dlmjj.cn/article/dsijiji.html