在我的一个web服务中,我使用memcached缓存结果。我可以缓存结果json或源对象。但是,如果缓存源对象,则必须在发送结果之前每次将其转换为json (我在代码中这样做,因为我使用json视图来动态限制少数列)。如果缓存JSON字符串(相当大),只需返回它。我的问题是,JSON字符串会比java对象消耗更多内存吗?还是缓存JSON字符串不是一个好主意?
发布于 2014-03-10 02:15:50
如果通过memcache缓存源对象,则必须序列化和反序列化源对象。这是很大的开销。因此,缓存JSON对象更快。
在这方面,有两点建议:
避免字符编码:如果可能的话,将JSON对象存储为字节数组,而不是字符串或char数组,然后通过HttpResponse.getOutputStream(json)返回。这样,您还可以绕过其他字符编码。
缓存整个响应:如果JSON是REST查询的结果,那么最好是通过应用程序前面的缓存服务器(例如,清漆、nginx、apache流量服务器)缓存完整的请求。只要把正确的http缓存头放在上面,你就没事了。
https://stackoverflow.com/questions/22293873
复制相似问题