欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

nosql代理,NoSql

幾種nosql的淺談

1、性能

成都創(chuàng)新互聯(lián)主要從事網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)仁化,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

都比較高,性能對我們來說應(yīng)該都不是瓶頸。

總體來講,TPS 方面 redis 和 memcache 差不多,要大于 mongodb。

2、操作的便利性

memcache 數(shù)據(jù)結(jié)構(gòu)單一。(key-value)

redis 豐富一些,數(shù)據(jù)操作方面,redis 更好一些,較少的網(wǎng)絡(luò) IO 次數(shù),同時(shí)還提供 list,set,

hash 等數(shù)據(jù)結(jié)構(gòu)的存儲。

mongodb 支持豐富的數(shù)據(jù)表達(dá),索引,最類似關(guān)系型數(shù)據(jù)庫,支持的查詢語言非常豐富。

3、內(nèi)存空間的大小和數(shù)據(jù)量的大小

redis 在 2.0 版本后增加了自己的 VM 特性,突破物理內(nèi)存的限制;可以對 key value 設(shè)置過

期時(shí)間(類似 memcache)

memcache 可以修改最大可用內(nèi)存,采用 LRU 算法。Memcached 代理軟件 magent,比如建立

10 臺 4G 的 Memcache 集群,就相當(dāng)于有了 40G。 magent -s 10.1.2.1 -s 10.1.2.2:11211 -b

10.1.2.3:14000 mongoDB 適合大數(shù)據(jù)量的存儲,依賴操作系統(tǒng) VM 做內(nèi)存管理,吃內(nèi)存也比較厲害,服務(wù)

不要和別的服務(wù)在一起。

4、可用性(單點(diǎn)問題)

對于單點(diǎn)問題,

redis,依賴客戶端來實(shí)現(xiàn)分布式讀寫;主從復(fù)制時(shí),每次從節(jié)點(diǎn)重新連接主節(jié)點(diǎn)都要依賴整

個(gè)快照,無增量復(fù)制,因性能和效率問題,

所以單點(diǎn)問題比較復(fù)雜;不支持自動 sharding,需要依賴程序設(shè)定一致 hash 機(jī)制。

一種替代方案是,不用 redis 本身的復(fù)制機(jī)制,采用自己做主動復(fù)制(多份存儲),或者改成

增量復(fù)制的方式(需要自己實(shí)現(xiàn)),一致性問題和性能的權(quán)衡

Memcache 本身沒有數(shù)據(jù)冗余機(jī)制,也沒必要;對于故障預(yù)防,采用依賴成熟的 hash 或者環(huán)

狀的算法,解決單點(diǎn)故障引起的抖動問題。

mongoDB 支持 master-slave,replicaset(內(nèi)部采用 paxos 選舉算法,自動故障恢復(fù)),auto sharding 機(jī)制,對客戶端屏蔽了故障轉(zhuǎn)移和切分機(jī)制。

5、可靠性(持久化)

對于數(shù)據(jù)持久化和數(shù)據(jù)恢復(fù),

redis 支持(快照、AOF):依賴快照進(jìn)行持久化,aof 增強(qiáng)了可靠性的同時(shí),對性能有所影

memcache 不支持,通常用在做緩存,提升性能;

MongoDB 從 1.8 版本開始采用 binlog 方式支持持久化的可靠性

6、數(shù)據(jù)一致性(事務(wù)支持)

Memcache 在并發(fā)場景下,用 cas 保證一致性redis 事務(wù)支持比較弱,只能保證事務(wù)中的每個(gè)操作連續(xù)執(zhí)行

mongoDB 不支持事務(wù)

7、數(shù)據(jù)分析

mongoDB 內(nèi)置了數(shù)據(jù)分析的功能(mapreduce),其他不支持

8、應(yīng)用場景

redis:數(shù)據(jù)量較小的更性能操作和運(yùn)算上

memcache:用于在動態(tài)系統(tǒng)中減少數(shù)據(jù)庫負(fù)載,提升性能;做緩存,提高性能(適合讀多寫

少,對于數(shù)據(jù)量比較大,可以采用 sharding)

MongoDB:主要解決海量數(shù)據(jù)的訪問效率問題。

表格比較:

memcache redis 類型 內(nèi)存數(shù)據(jù)庫 內(nèi)存數(shù)據(jù)庫

數(shù)據(jù)類型 在定義 value 時(shí)就要固定數(shù)據(jù)類型 不需要

有字符串,鏈表,集 合和有序集合

虛擬內(nèi)存 不支持 支持

過期策略 支持 支持

分布式 magent master-slave,一主一從或一主多從

存儲數(shù)據(jù)安全 不支持 使用 save 存儲到 dump.rdb 中

災(zāi)難恢復(fù) 不支持 append only file(aof)用于數(shù)據(jù)恢復(fù)

性能

1、類型——memcache 和 redis 都是將數(shù)據(jù)存放在內(nèi)存,所以是內(nèi)存數(shù)據(jù)庫。當(dāng)然,memcache 也可用于緩存其他東西,例如圖片等等。

2、 數(shù)據(jù)類型——Memcache 在添加數(shù)據(jù)時(shí)就要指定數(shù)據(jù)的字節(jié)長度,而 redis 不需要。

3、 虛擬內(nèi)存——當(dāng)物理內(nèi)存用完時(shí),可以將一些很久沒用到的 value 交換到磁盤。

4、 過期策略——memcache 在 set 時(shí)就指定,例如 set key1 0 0 8,即永不過期。Redis 可以通

過例如 expire 設(shè)定,例如 expire name 10。

5、 分布式——設(shè)定 memcache 集群,利用 magent 做一主多從;redis 可以做一主多從。都可

以一主一從。

6、 存儲數(shù)據(jù)安全——memcache 斷電就斷了,數(shù)據(jù)沒了;redis 可以定期 save 到磁盤。

7、 災(zāi)難恢復(fù)——memcache 同上,redis 丟了后可以通過 aof 恢復(fù)。

Memecache 端口 11211

yum -y install memcached

yum -y install php-pecl-memcache

/etc/init.d/memcached start memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid

-d 啟動一個(gè)守護(hù)進(jìn)程

-p 端口

-m 分配的內(nèi)存是 M

-c 最大運(yùn)行并發(fā)數(shù)-P memcache 的 pid

//0 壓縮(是否 MEMCACHE_COMPRESSED) 30 秒失效時(shí)間

//delete 5 是 timeout

userip = nosql(Request.("HTTP_X_FORWARDED_FOR"))

《HTTP_X_FORWARDED_FOR REMOTE_ADDR》

在 ASP 中使用 Request.ServerVariables("REMOTE_ADDR") 來取得客戶端的 IP 地址,但如果客戶端是使用代理服務(wù)器來訪問,那取到的就是代理服務(wù)器的 IP 地址,而不是真正的客戶端 IP 地址。要想透過代理服務(wù)器取得客戶端的真實(shí) IP 地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 來讀取。

不過要注意的事,并不是每個(gè)代理服務(wù)器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 來讀取客戶端的真實(shí) IP,有些用此方法讀取到的仍然是代理服務(wù)器的 IP。

還有一點(diǎn)需要注意的是:如果客戶端沒有通過代理服務(wù)器來訪問,那么用Request.ServerVariables ("HTTP_X_FORWARDED_FOR") 取到的值將是空的。因此,如果要在程序中使用此方法,可以這樣處理:

......

userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")

If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")

......

即:如果客戶端通過代理服務(wù)器,則取 HTTP_X_FORWARDED_FOR 的值,如果沒通過代理服務(wù)器,就取 REMOTE_ADDR 的值。

predixy一款高性能全功能redis代理

redis作為一款優(yōu)秀的NoSQL代表軟件,正變得越來越流行,雖然Redis很容易就可以啟動并使用,但是要想在線上用好它卻也并非易事。redis的高可用和可擴(kuò)展無論是自帶的Redis Sentinel還是Redis Cluster都要求客戶端進(jìn)行額外的支持,而目前基本上沒有合適的客戶端能夠做這些事情,實(shí)際上客戶端來做這些事情也并不合適,它會讓維護(hù)變得特別困難。因此在客戶端和redis服務(wù)端之間加一層代理成了一種理想的方案,代理屏蔽后端Redis實(shí)現(xiàn)細(xì)節(jié)向客戶端提供redis服務(wù),可以完美的解決Redis的高可用和擴(kuò)展性問題,同時(shí)代理的引入也使得Redis維護(hù)變得更加簡單。在本文所要介紹的代理predixy之前,已經(jīng)有幾款流行的redis代理,它們各具特色。接下來,我們就來比較以下代理:

簡單來說,predixy既支持Redis Sentinel也支持Redis Cluster

作為redis代理,高性能是硬性要求,為了測試上面四款代理的性能接下來我們就來做個(gè)簡單的評測,測試平臺及各代理具體的版本信息如下:

redis-server、各代理、redis-benchmark均在這一臺機(jī)器上運(yùn)行。

redis部署:

以下測試的結(jié)果中,橫坐標(biāo)為數(shù)據(jù)大小、縱坐標(biāo)為qps或者毫秒。

這里單線程是指四款代理都運(yùn)行在單線程下(下同),redis-benchmark默認(rèn)并發(fā)50個(gè)客戶端連接,每個(gè)連接每次發(fā)送一個(gè)命令收到響應(yīng)后再發(fā)下一個(gè)命令。這是很多線上實(shí)際的場景。

在吞吐上,四款代理的性能排列的整齊有序,predixy大幅領(lǐng)先于另外三款代理,而twemproxy又以較大優(yōu)勢領(lǐng)先另外兩個(gè),剩下的兩個(gè)codis在數(shù)據(jù)量小于512的時(shí)候稍稍領(lǐng)先cerberus,而當(dāng)數(shù)據(jù)量大于512的時(shí)候,codis對cerberus的領(lǐng)先越來越大。整體上在數(shù)據(jù)量達(dá)到16KB時(shí),由于redis-benchmark本身成為瓶頸,predixy和twemproxy的SET成績差不多了。

在延時(shí)上,codis由于語言的問題,一直都大于另外三款代理,后續(xù)測試也一樣。

在有些場景下,客戶端可能在處理一個(gè)請求時(shí)可能需要發(fā)起多次redis請求,這時(shí)如果把多個(gè)redis請求pipeline一起請求的話,會大幅改善性能。本輪測試就來看看當(dāng)客戶端一次發(fā)送多個(gè)請求時(shí)我們各代理表現(xiàn)如何?Redis-benchmark依舊是并發(fā)50個(gè)連接,但是一次發(fā)送20個(gè)命令。

在吞吐上,redis-benchmark一次pipeline 20個(gè)命令后,各代理的吞吐量全都猛增。predixy更是一騎絕塵,遙遙領(lǐng)先另外三個(gè),而最后看到在GET 4K數(shù)量據(jù)的時(shí)候predixy表現(xiàn)和其它代理差不多是因?yàn)閷redixy來說,當(dāng)數(shù)據(jù)量大于2K時(shí)redis-benchmark自身已經(jīng)成為瓶頸。另外三款代理,在上輪測試中落后的cerberus在本輪測試一開始表現(xiàn)遠(yuǎn)好過twemproxy和codis,但cerberus還是存在隨著數(shù)據(jù)量變大性能迅速降低的問題。twemproxy和codis在本輪測試中表現(xiàn)基本相當(dāng)。

在時(shí)延上,codis固有的問題表現(xiàn)較差,另外三款在數(shù)據(jù)量較小時(shí)差別較小,而當(dāng)數(shù)據(jù)量超過512時(shí),predixy則表現(xiàn)出較明顯的優(yōu)勢。

測完了單線程,現(xiàn)在我們開始多線程測試,由于twemproxy不支持多線程,因此twemproxy不參與多線程的測試??紤]到redis-benchmark本身是個(gè)單線程程序,在多線程代理下如果我們再測單個(gè)命令的性能,那redis-benchmark很可能就是瓶頸,則無法更明確的看出各代理的性能差異,因此我們直接測試pipeline,還跟上輪一樣,50個(gè)并發(fā)連接,一次發(fā)送20個(gè)命令。

總體趨勢和第二輪單線程pipeline測試一致,predixy在本輪測試中依舊取得了領(lǐng)先,不過在開始階段cerberus和predixy遙遙領(lǐng)先于codis,cerberus和predixy差距不大。但是隨著數(shù)據(jù)量的變大,cerberus再次顯示出了性能急劇降低的問題,到1K以后甚至就比codis差了。

在功能的對比上,predixy相比另外三款代理更為全面,基本可以完全適用原生redis的使用場景。在性能上,predixy在各輪測試中都以較大優(yōu)勢領(lǐng)先。對各代理的總結(jié)如下:

分享標(biāo)題:nosql代理,NoSql
分享鏈接:http://aaarwkj.com/article22/dsigojc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、App開發(fā)、定制開發(fā)品牌網(wǎng)站建設(shè)、企業(yè)建站、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
免费在线成人av观看| 人人看男人的天堂东京 | 夜福利国产视频大屁股| 国产一区二区三区自拍| 日韩午夜电影一区二区三区| 麻豆映画传媒在线播放| 欧美一区二区大香蕉视频| 国产精品av在线网站| 国偷蜜桃av一区二区三区| 高清偷自拍亚洲精品三区| 欧美精品黄片免费在线观看| 欧美午夜福利在线电影| 91久久亚洲综合精品日本| av在线观看亚洲天堂| 曰本真人性做爰视频免费| 国产精品国产自产拍高清| 国产三级伦理在线播放| 激情五月开心五月麻豆| 久久国产精品一区二区三区| 免费爱爱视频在线观看| 最近最新免费成人在线视频| 日韩欧美国产精品专区| 欧美日韩精品视频专区| 青青草国产成人自拍视频在线观看 | 亚洲女人淫片在线观看| 人妻熟女在线一区二区| 日韩黄av在线免费观看| 人妻精品中文字幕一区二区在线| 亚洲丰满毛茸茸毛茸茸| 国产极品美女视频福利| 最新国产av网址大全| av影片在线观看亚洲天堂| 亚洲熟女午夜毛片av毛片| 国产一区二区成人精品| 18禁的视频在线观看| 亚洲一区二区福利视频| 歪歪私人影院午夜毛片| 国产乱国产乱老熟女视频| 欧美女人又粗又长亚洲| 日韩欧美国产精品加勒比| 欧美大片黄片在线观看|