0

使用 Basho 的 Python 客户端时,获取键的值包括两个操作:

  • 得到一个桶
  • 从存储桶中获取值

像这样:

bucket = client.bucket(bucket_name)
value = bucket.get(key)

我偶尔会None回来拿同一个桶。这似乎很荒谬,因为存储桶显然在那里(我手动检查了创建客户端的所有节点)。所以问题是,我可以/应该缓存/本地存储存储桶对象吗?

4

1 回答 1

0

我不是 python 客户端的专家,但据我了解,您应该保留您的 client.bucket 实例并多次使用它来对其执行操作。但是,如果通过缓存是指将其序列化到磁盘或将其存储在共享内存缓存中,我不会缓存它。实际上,我也会避免跨多个线程共享它。而且绝对不会跨越不同的流程。

获取存储桶实例足够便宜,您可以经常创建它。然而,最好的做法是保留它并在紧密循环中或在您尚未完成当前工作时对其发出多个操作。

如果您使用某些连接池,请确保在重新连接时重新创建存储桶实例。

希望有帮助。如果没有,请给我们更多细节,也许给我们一些代码:)

于 2016-01-29T12:50:11.423 回答