我的Python应用程序当前使用python-memcached API来设置和获取memcached中的对象.此API使用Python的本机pickle模块来序列化和反序列化Python对象.
这个API使得在memcached中存储嵌套的Python列表,字典和元组变得简单快捷,将这些对象读回应用程序是完全透明的 - 它只是起作用.
但我不想仅限于使用Python,如果所有的memcached对象都是用pickle序列化的,那么用其他语言编写的客户端将无法工作.
以下是我考虑过的跨平台序列化选项:
考虑到这个应用程序的优先级,memcached的理想对象序列化方法是什么?
python serialization memcached xml-serialization protocol-buffers
我修改了排行榜示例以使用两个集合:
Players = new Meteor.Collection("players");
Tasks = new Meteor.Collection("tasks");
Run Code Online (Sandbox Code Playgroud)
Players集合具有示例中定义的6个文档.
> db.players.count()
6
Run Code Online (Sandbox Code Playgroud)
Tasks集合有48,000个文档.
> db.tasks.count()
48000
Run Code Online (Sandbox Code Playgroud)
一旦打开浏览器,Node就会跳转到100%CPU,客户端无法看到任何任务记录.
Players.find().count()
6
Tasks.find().count()
0
Run Code Online (Sandbox Code Playgroud)
我尝试定义查询条件,但这只适用于服务器,对客户端没有帮助.
Players.find({name:"Claude Shannon"}).count();
1
Tasks.find({tid:"t36254"}).count();
0
Run Code Online (Sandbox Code Playgroud)
我猜测48,000个文档太多无法同步.这导致Node以100%CPU和客户端挂起这样的错误:http://i.imgur.com/zPcHO.png.
如何防止同步所有内容并仅从集合中检索特定文档?