问题标签 [spymemcached]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6982 浏览

memcached - memcached 客户端:打开、关闭和重用连接

我一直在测试 spymemcached 和 xmemcached 客户端。我一直试图在项目文档中找到答案,但它很差。

我的问题是关于打开、关闭和重用连接。我在一份文件中发现了这一点:

客户端可以在它不再需要的任何时候关闭连接。但是请注意,我们鼓励客户端缓存他们的连接,而不是在每次需要存储或检索数据时重新打开它们。缓存连接将消除与建立 TCP 连接相关的开销”。

Spymemcached 不提供连接池,所以每次我创建一个MemcachedClient实例时,我都是在创建一个新连接,对吧?那我什么时候应该关闭连接?我应该为我的应用程序中的所有线程提供相同的实例还是每次都创建一个新实例?

xmemcached 确实有一个连接池。在这种情况下,我应该关闭从池中获得的连接吗?

0 投票
3 回答
1259 浏览

java - 一个用于多个客户端的 Memcached 服务器

我们有 2 个应用服务器(coldfusion / Java)和一个 memcached。我想像这样设置我的 memcached 服务器/客户端。当服务器 1 为密钥添加值时,它也应该可用于服务器 2。并且以相反的方式也可以。

现在,当我在服务器 1 上为键添加值时,它在第二台服务器上不可读或不可编辑。如何设置

我使用spymemcached作为客户端库。

谢谢你的帮助

0 投票
1 回答
1898 浏览

spymemcached - 用于多个 membase 服务器的 Spymemcached 哈希算法

平台: spymemcached-2.7.3.jar,64 位 Windows 7 操作系统

我们有两个 membase 服务器(非集群环境),我们使用 spymemcached java 客户端来设置和从 memcache 获取数据。我们没有在两个 membase 服务器之间使用任何复制。

我们正在使用以下代码在 memcache 中设置数据。看起来 MemcachedClient 总是首先尝试在 server1 中放置/获取数据(如果可用)。如果 server1 已关闭,则 MemcachedClient 从 server2 放置/获取。spymemcached 是否使用任何散列算法来决定它需要从哪个服务器设置/获取数据?任何可用的文档解释它是如何工作的?

代码

0 投票
2 回答
883 浏览

memcached - Spymemcache-Memcache/Membase 故障转移

平台:64 位 windows 操作系统,spymemcached-2.7.3.jar,J2EE

我们想使用两个 memcache/membase 服务器来进行缓存解决方案。我们希望为每个 memcache/membase 服务器分配 1 GB 内存,因此我们总共可以缓存 2 GB 数据。我们正在使用 spymemcached java 客户端从 memcache 设置和获取数据。我们没有在两个 membase 服务器之间使用任何复制。

我们在 J2EE 应用程序启动时加载 memcacheClient 对象。

之后,我们使用 memcacheClient 在 memcache/membase 服务器中获取和设置值。

看起来 memcacheClient 仅从 server1 设置和获取值。

如果我们停止 server1,它将无法获取/设置值。如果 server1 关闭,它不应该使用 server2 吗?如果我们在这里做错了什么,请告诉我......

0 投票
1 回答
3416 浏览

memcached - Memcached Client getStats 可能统计信息的键列表?

MemcachedClient 有一个getStats方法,它接受一个 String 键作为 stat 值。是否有我可以使用的可能键的列表?

这也是本地操作还是对服务器的阻塞调用以获取这些统计信息?

0 投票
1 回答
4840 浏览

memcached - 使用 Java 中的 spymemcached 设置 Amazon ElastiCache

我一直无法在 Amazon Cloud 上找到有关 Memcached 的好教程,而且我对整个缓存的事情还很陌生。我正在尝试通过 Amazon 的 ElastiCache 服务和 spymemcached 客户端使用 memcached 来实际进行 memcached 调用。

这是我现在在 Java 中所做的事情:

我尝试这个时得到的错误是:

有人对此有任何想法或经验吗?谢谢!

0 投票
0 回答
1031 浏览

java - 播放有时会因 memcached 客户端关闭而关闭

我的生产播放服务器有时会在没有任何警告的情况下关闭。

system.out 中的最后一条消息是:

spymemcached.jar 中发生错误

为什么?任何原因?

谢谢。

0 投票
1 回答
974 浏览

membase - 内存库?这是如何运作的?

当我添加一个 IP 地址并建立连接时,客户端是否获取所有服务器的可用 IP 地址?

或者当其中一个出现故障时,客户是否需要知道至少 2 个 IP 地址?

这是我一直在测试的代码(JAVA)

如果我只添加了一个 IP 地址,并且在我执行获取和设置操作时服务器出现故障。客户端是否能够连接到其他可用的服务器?因为如果我添加一个观察者并看到可用的服务器,我看不到任何(如果我在列表中只添加一个服务器)这是否意味着我必须添加尽可能多的 IP 地址以避免连接失败?

另一个问题是,我可以看到,当我添加 IP 地址时,我必须输入链接到特定 vBucket 的端口号。让所有客户观看同一个 vbucket 是否会造成溢出?如果是这样,我应该如何平衡客户端以观看不同的 vBucket?

对不起,如果我的英语没有真正让你明白 T^T。

任何形式的建议或答案将不胜感激!谢谢!

0 投票
1 回答
320 浏览

memcached - 如何在 memcached 客户端和服务器之间实现 280qps?

我选择 Spymemcached 作为 memcached java 客户端,因为我发现它的 set 方法没有回复似乎比其他 memcached 客户端快十倍。

我的代码:

memcachedClient.set(key,0,value);

代替:

memcachedClient.set(key,0,value).get();

我确实关心时间成本比设置的结果要多得多。

现在看起来快了很多,但内存泄漏很可能发生在 memcached 客户端上。

当我使用 memcached 服务器在同一台计算机上运行 4 时,它为每个 memcached 客户端进程分配大约 2G 内存。8核cpu和4G内存几乎全部消耗。本地网络接口“lo”只有大约 0.2Gbits 每秒。

如何降低 cpu 和内存消耗率,甚至加快 memcached qps。

我需要来自 memcached 客户端的 280k qps,每个 qps 发送具有 50B 键长度和 500B 值长度的数据。现在我尝试在本地主机上启动 memcached 客户端,以避免网络接口带宽的限制。四个memcahced进程,每个运行6个线程,现在我几乎可以实现180qps,这与我的目标相差甚远,cpu和内存成为限制。而且我还需要在包含真正的 java memcached 客户端的同一台计算机上运行storm。所以我当然不能让 memcached 客户端占用核心资源。

如何减少cpu和内存消耗,或者如何实现单台计算机上的多个java memcached客户端与分布式memcached服务器之间的280qps。

获取和设置都占用了一半的查询。也许我可以尝试 getMulti 每次获取 50 个键。但问题仍然存在。

期待您的回复。谢谢!

0 投票
1 回答
1485 浏览

java - 不理解 spymemcached 的示例代码

我正在使用 spymemcached 客户端来实现我的缓存逻辑。不知何故,我需要使用 CAS 来同时修改缓存中的某些内容。

我看到所有者已经展示了一个很好的例子来说明如何从这里使用 CASMutation:http ://code.google.com/p/spymemcached/wiki/Examples#Using_CAS

但是我对这部分代码有一个问题:

即使我仔细阅读了评论,我仍然不明白它在这里试图做什么。如果我们只使用“current”而不复制到“ll”怎么办?有哪些潜在问题?

[更新]

我正在遵循示例代码并实现了这样的方法,这行得通吗?

我最关心的是它是否是线程安全的。