日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手游公司运维之初识MongoDB

發(fā)布時間:2024/3/13 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手游公司运维之初识MongoDB 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

接觸MongoDB一年多了,之前從來沒有想過自己會在工作中大量使用MongoDB。曾經(jīng)一段時間,我還想過以后做一個合格的DBA,自己還學(xué)習(xí)了Oracle和MySQL數(shù)據(jù)庫,但是所在的公司一直都有專門的DBA在維護,所以實際工作中接觸的非常少,也只會一些基本查找而已。沒有想到自己對MySQL都還沒有作深入研究,就直接成為了一名業(yè)余的MongoDB DBA,哥也是被逼的啊,公司的游戲數(shù)據(jù)全存到MonogDB數(shù)據(jù)庫里面的,怎么能不好好學(xué)。

我最初接觸MongoDB數(shù)據(jù)庫是之前在一個×××公司的時候,那邊的開發(fā)同事決定在新版本中使用MongoDB作為消息系統(tǒng)的后端數(shù)據(jù)庫。所以那段時間我研究了一下MongoDB數(shù)據(jù)庫,在網(wǎng)上下載了《MongoDB The Definitive Guide》一書。看了一段時間覺得MongoDB還挺有意思的,數(shù)據(jù)類型都比較寬泛,非常適合大量隨機數(shù)據(jù)同時寫入。恰巧在目前公司,前項目團隊也是采用MongoDB數(shù)據(jù)庫來存儲游戲數(shù)據(jù),所以迫不得已,我和幾個剛來公司的開發(fā)同事一起研究MongoDB。半年多過去了,從一開始對MongoDB的憎恨,懷疑,不肯定到現(xiàn)在的順其自然,原來不是MongoDB不行,只是我們了解得還不夠,加上前項目程序員留后門搗亂,讓我們不斷地去懷疑MongoDB的穩(wěn)定性。最近要根據(jù)運營同事需求作合服操作,就是將多個區(qū)服的游戲數(shù)庫據(jù)合并到一個庫中。和開發(fā)同事討論的時候,他說是MongoDB還好,要是MySQL的話,合服操作還要麻煩一些。從和開發(fā)同事交流的過程中,他們也認為MongoDB很適合用來作游戲數(shù)據(jù)庫。

MongoDB的官方網(wǎng)站是http://www.mongodb.com 。從這個網(wǎng)站上可以獲取一些MongoDB公司的相關(guān)信息,去年這個公司還叫10gen。MongoDB相關(guān)的文檔可以從http://www.mongodb.org 獲取。MongoDB是一種NoSQL型數(shù)據(jù)庫,它是一種文檔型數(shù)據(jù)庫,也就是它沒有特定的database schema。可以不用像MySQL那樣將相關(guān)聯(lián)的數(shù)據(jù)放到不同的表中,然后使用join進行多個表之間的關(guān)聯(lián)操作。它可以直接將相關(guān)的數(shù)據(jù)放到一個document中,同時一個document還可以嵌套子document。MongoDB是采用c++語言開發(fā)的,從官方下載軟件包解壓后無需編譯安裝,直接就可以使用二進制文件,安裝和使用都很方便。

MongoDB數(shù)據(jù)庫中的一條記錄叫做一個document(文檔).一個文檔是由多對field和value組成的數(shù)據(jù)結(jié)構(gòu)。MongoDB的document格式和JSON格式相似,documnet中的value可以包含其他文檔(document)或數(shù)組(arrays)或文檔數(shù)組(arrays of documents)。

線上player表(集合)中的一個document如下:

{

"_id" : ObjectId("52706d57144fa27d5e000015"), //MongoDB為每條記錄自動生成的

"action" : 20,

"action_max" : 10,

"activity_buy" : 0,

"bag" : 0,

"bag_max" : 29,

"board_ver" : 21,

"cache_version" : 1383099735,

"code" : "KQSFSGTTLI20",

"code_from" : "",

"code_get_bonus" : 0,

"code_used" : 0,

"coin" : 65470410, ? ? ? ? ? //玩家金幣數(shù)量

"coin_max" : 4195000,

"create_time" : 1383099735,

"email" : "leon0820@hotmail.com", ? ? ? //玩家郵箱地址

"friends_list" : [ ],

"friends_num" : 15, ? ? ? ? ? ? ? ? ? ?//玩家好友數(shù)量

"gold_bonus" : 1000000,

"gold_buy" : 1009518,

"gold_cost" : 181149,

"instance_win_times" : 139,

"is_buy" : 1,

"is_get_daily_bonus" : 1,

"kizuna" : 998006,

"last_active_time" : 0,

"last_broadcast_time" : 1386154724,

"last_dailybonus_time" : 1386153959,

"last_login_time" : 1386154724,

"last_regrow_action_time" : 1385629876,

"level10_gift" : 0,

"login_times" : 77,

"makefriends_gift" : 0,

"next_query_time" : 1386154784,

"online_seconds" : 26422,

"population" : 445449,

"population_max" : 414500,

"repute" : 0,

"request_time" : 1386154756,

"series_login_days" : 1,

"status" : 1,

"tmp_backpack_num" : 50,

"tmp_help_friends_times" : 0,

"tmp_helped_friends_times" : 0,

"tmp_sid_token" : "a1b2a26e4674dc6",

"uid" : "94ff486f0c697bec21e0af3a010a88d7",

"unlock_blacksmith" : 1,

"unlock_dojo" : 1,

"unlock_lab" : 1,

"unlock_market" : 0,

"unlock_templechurch" : 1,

"user_name" : "Leon", ? ? ? ? ? ? //玩家的角色名

"version" : ""

}


使用documents的優(yōu)勢有:

1)documents和很多編程語言的本地數(shù)據(jù)類型相似。

2)通過使用嵌入的documents和數(shù)組可以減少使用聯(lián)合查詢(join)。

3)動態(tài)的數(shù)據(jù)模式,支持豐富的數(shù)據(jù)類型。

MongoDB通過Replication Set和Sharding技術(shù)可以實現(xiàn)數(shù)據(jù)庫的冗余,高可用和高擴展性。目前線上使用的是Replication Set的方式。Primary+Sencondary+Arbiter方式。







國內(nèi)使用MongoDB的公司

1)天天動聽。從他們的官方網(wǎng)站招聘上可以看出他們也在大量使用MongoDB數(shù)據(jù)庫。http://www.ttpod.com/job/detail/2

2)大眾點評網(wǎng)。http://careers.dianping.com/#!/join?category=rd&location=all

? ? http://www.mongodb.org/about/production-deployments/

3)易到用車。http://www.yongche.com/job/intro.html

4)視覺中國。http://www.infoq.com/cn/interviews/pf-mongodb-develop

5)淘寶網(wǎng)。http://www.mongodb.org/about/production-deployments/ 。淘寶網(wǎng)使用MongoDB存儲監(jiān)控數(shù)據(jù)。


國外使用MongoDB的公司

1)ebay。http://www.mongodb.com/presentations/mongodb-ebay

? ? ? ? http://www.mongodb.com/presentations/storing-ebays-media-metadata-mongodb-0

2)sourceforge。http://www.mongodb.com/presentations/realtime-analytics-using-mongodb-python-gevent-and-zeromq-0

3)github。http://www.mongodb.com/presentations/mongodb-chicago-2012/mongodb-analytics

4)Forbes.

更多使用案例可以參考

http://www.mongodb.org/about/production-deployments/

http://www.mongodb.com/use-cases






轉(zhuǎn)載于:https://blog.51cto.com/john88wang/1381742

總結(jié)

以上是生活随笔為你收集整理的手游公司运维之初识MongoDB的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。