google给的datastore读写数量限制很坑爹,这直接导致了很多开发者逃离gae。现在有了一种新的解决方案——gae外接免费的mongodb数据库
特性
- mongolab提供的数据库完全免费,用的是google compute engine服务器,与gae之间的延迟极低,500mb大小,对于个人使用已经完全足够了
- 高性能,经测试mongodb接口的读写速度和datastore几乎持平
- 容易移植,只需要改几行代码,以前运行在datastore上的程序,就能无缝桥接到mongodb,笔者已经测试过v2ex Babel 2、doodle blog均能正常运转
使用方法
- 首先到https://
mongolab.com/申请一个mongolab免费数据库,注册好以后,在新建那里选google Cloud Platform
- 新建一个以你appid命名的数据库
- git clone https://github.com/ntkrnl/gae-mongodb
- 将gae-mongodb下文件夹一块复制到要迁移的项目文件夹
- 在工程主文件的头部,或者model.py头部加入如下几句代码,'mongodb://xxxxxx'是刚才申请得到的mongodb uri,port是连接端口
import os
import datastore_mongodb_stub
from google.appengine.api import apiproxy_stub_map
mongodb = datastore_mongodb_stub.DatastoreMongoDBStub(os.environ['APPLICATION_ID'], False, 'datastore_v3', None, None, 'mongodb://xxxxxx', port)
apiproxy_stub_map.apiproxy.ReplaceStub('datastore_v3', mongodb)
- update到gae测试是否运行成功
http://bitcn.org/2013/09/27/gae-mongodb/
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/83966
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.