Google app engine 当memcache中的某个实体即将被删除时,是否有一种方法可以得到通知?

Google app engine 当memcache中的某个实体即将被删除时,是否有一种方法可以得到通知?,google-app-engine,Google App Engine,有没有办法知道存储在memcache中的实体何时将被删除?为了将其持久化到一个更永久的数据存储中。如果有,我会非常惊讶,memcache被设计成一个临时数据存储,用于缓存来自另一个源的数据。通常使用memcache的方式是,当您需要访问数据时,首先检查memcache,如果未找到,则检查持久存储。在更新时,您可以将更新后的值存储在永久存储之外的memcache中,或者删除memcache值并仅将其存储在永久数据存储中,然后在下一次数据检索调用时将其从永久存储中提取。在这种模式下,您应该始终期望m

有没有办法知道存储在memcache中的实体何时将被删除?为了将其持久化到一个更永久的数据存储中。

如果有,我会非常惊讶,memcache被设计成一个临时数据存储,用于缓存来自另一个源的数据。通常使用memcache的方式是,当您需要访问数据时,首先检查memcache,如果未找到,则检查持久存储。在更新时,您可以将更新后的值存储在永久存储之外的memcache中,或者删除memcache值并仅将其存储在永久数据存储中,然后在下一次数据检索调用时将其从永久存储中提取。在这种模式下,您应该始终期望memcache可能包含或不包含您的数据。

如果有,我会非常惊讶,memcache是一种临时数据存储,用于缓存来自其他源的数据。通常使用memcache的方式是,当您需要访问数据时,首先检查memcache,如果未找到,则检查持久存储。在更新时,您可以将更新后的值存储在永久存储之外的memcache中,或者删除memcache值并仅将其存储在永久数据存储中,然后在下一次数据检索调用时将其从永久存储中提取。在这个范例中,您应该始终期望memcache可能包含或不包含您的数据。

正如jdavidbakr所指出的,没有办法得到通知

memcache的最佳实践是在使用python时使用ndb(因为ndb在推送到数据存储之前已经检查了memcache,所以如果memcache有请求的数据,它将命中memcache)


如果您使用的语言没有ndb,我建议使用taskqueues将数据插入数据存储(即:“将实体推送到memcache,并创建taskqueue推送到数据存储”)。对于检索,您首先在memcache中查找,如果实体不在memcache中,则转到数据存储。如果您必须访问数据存储以获取数据,请将其推回到memcache。

正如jdavidbakr指出的那样,无法得到通知

memcache的最佳实践是在使用python时使用ndb(因为ndb在推送到数据存储之前已经检查了memcache,所以如果memcache有请求的数据,它将命中memcache)


如果您使用的语言没有ndb,我建议使用taskqueues将数据插入数据存储(即:“将实体推送到memcache,并创建taskqueue推送到数据存储”)。对于检索,您首先在memcache中查找,如果实体不在memcache中,则转到数据存储。如果您必须访问数据存储以获取数据,请将其推回到memcache。

为什么不使用我指出的任务队列?更容易遵守1分钟的最后期限,不是吗?好吧,我明白了,我希望用它来减少对数据存储的点击,这是一种节省成本的方法,因为实体可能会经常更新,但需要更多地考虑我的设计。@chanakya好吧,你最终会减少对数据存储的点击,因为有时数据会在memcache中。只是很难提前知道,所以推动数据存储是一种“良好实践”。请记住,如果您在memcache中找到数据,就不需要访问数据存储,因此您可以节省这些成本,为什么不使用任务队列呢?更容易遵守1分钟的最后期限,不是吗?好吧,我明白了,我希望用它来减少对数据存储的点击,这是一种节省成本的方法,因为实体可能会经常更新,但需要更多地考虑我的设计。@chanakya好吧,你最终会减少对数据存储的点击,因为有时数据会在memcache中。只是很难提前知道,所以推动数据存储是一种“良好实践”。请记住,如果您在memcache中找到数据,则无需访问数据存储,因此您可以节省这些成本