@
keakon 我还没有做过这些优化, 也没试验验证过, 以下只是推测
首先, 如果可以按最高使用频率来cache, 肯定比常规FIFO方式更合适, 而这个恰恰在v2ex具备条件(推测).
比如, cache最新的n条回复, 以及最新回复的n位用户.
然后, 只在发生写操作时cache (用户发帖子/回复的时候, 不包括计数器之类的操作), cache该用户信息和发帖/回复信息. (初始加载时, 可能需要加载最新的n条信息)
"一是memcache随时有可能丢失数据;二是有些数据不能把缓存时间设得太长;三是一旦有更新,很多缓存必须删除。"
一,二点同意, 选择合适的cache规模应该可以克服
===============================
假如, datastore访问是通过get, put, 那只要在put时, 顺便放入cache, get时先检查cache
如果是通过query然后逐条读取, 或者批量读写, Python我不了解, Java/Objectify因为在中间架了一层, 所以所有操作都支持cache
GAE/Java 因为原生数据接口非常不方便, 效率底下, 所以有许多第三方的接口:
http://blog.cogipard.org/articles/tag/datastore (可能要翻墙访问)