小编Jer*_*way的帖子

用于Google App Engine的Memcache(Java)是全局缓存吗?

我是Google App Engine的新用户,过去几天我花了很多时间使用GAE的Memcache构建应用程序来存储数据.根据我的初步调查结果,似乎GAE的Memcache不是全球性的?

让我进一步解释.我知道GAE的不同请求可能由不同的实例提供(实际上这似乎经常发生).正是出于这个原因,我使用Memcache来存储一些共享数据,而不是静态Map.我想(也许是错误的)这是使用分布式缓存的重点,以便任何节点都可以访问数据.

另一个明确的可能性是我做错了什么.我已经尝试了JCache和低级Memcache API(我正在编写Java,而不是Python).这是我正在做的检索缓存:

MemcacheService cache = MemcacheServiceFactory.getMemcacheService();
Run Code Online (Sandbox Code Playgroud)

部署之后,这是我检查的内容(通过我的应用程序日志):

  1. 初始请求由特定节点提供,并且数据存储在上面检索的高速缓存中.
  2. 新的几个请求检索相同的缓存,数据就在那里.
  3. 当一个新节点被生成来提供请求时(从日志中我知道发生这种情况,因为GAE记录了"此请求导致为您的应用程序启动新进程的事实......"),检索缓存并且是EMPTY !

现在我也知道无法保证Memcache中的数据有多长,但从我的发现来看,当diff实例尝试访问缓存时,数据似乎消失了.这似乎违背了分布式全局缓存的整个概念吗?

希望有人能够确切地澄清这应该如何表现.如果Memcache不是全局的,并且每个服务器实例都有自己的副本,那么为什么甚至使用Memcache呢?我可以简单地使用静态HashMap(我最初做过,直到我意识到它不会是全局的,因为不同的实例服务于我的请求).

救命?

java google-app-engine memcached caching

15
推荐指数
1
解决办法
3797
查看次数

YouTube Analytics API问题

我是YouTube Analytics API的新手,有两个问题:

  • 为了检索Google Analytics(分析)报告,我必须为“ ids”参数指定渠道ID。如何找到经过OAuth身份验证的用户的频道ID?我在示例应用程序中看到,我可以在数据API(V3)中调用Channels.list方法,并使用“ mine = true”参数。是否可以保证返回单个通道?如果没有,我怎么知道哪个频道是正确的?推荐的查找用户频道ID的方法是什么?

  • 有了频道ID后,就可以开始查询Google Analytics(分析)数据了。我想查询该频道的“观看次数”指标,以了解该频道的整个历史记录。问题是,我怎么知道要查询多远?有频道开始日期吗?上面提到的Channels.list方法不会为我的频道返回snippet.publishedAt日期,因此这似乎不是一种可靠的方法。我还怎么知道什么时候停止?我想我可以回溯到2005年左右YouTube成立之初,但这似乎是一种糟糕的方法。有什么建议么?

  • Analytics API支持渠道和内容所有者的报告。用户通过OAuth进行身份验证后,如何知道该帐户是普通YouTube帐户还是CMS内容所有者帐户?

任何帮助将不胜感激!

youtube-api

5
推荐指数
1
解决办法
1344
查看次数