问题标签 [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.
java - java servlet 中的 spymemcached - 我应该使用单例吗?
我将把 spymemcached 合并到我拥有的 java servlet 中,并试图找出处理 MemcachedClient(s) 的最佳方法。我应该创建一个用于整个 servlet 的静态单例,还是每次需要使用客户端时都实例化一个新的?
java - 如何使用 spymemcached 动态添加 memcached 节点
我有一个 Java 应用程序设置,它有多个memcached
与客户端通信的服务器节点spymemcached
。
我想知道是否可以在运行时添加或删除服务器节点,而不会干扰所有现有的缓存节点(我知道应该更改一些节点)。
这是我知道(或理解)的:
可以在 中设置自定义哈希算法DefaultConnectionFactory
,这有助于我们使用一致性哈希,甚至可以使用内置的 KetamaConnectionFactory。
因此,我们应该能够添加或删除仅对一个或几个现有节点进行更改的节点。
可以使用spymemcached
吗?
如果是,那怎么办?
谁能指出我正确的方向?
memcached - 如何在 simple-spring-memcached 中为同一个键对象指定不同的缓存键
我正在尝试使用spring-memcached
. 文档建议使用对象作为键,我需要在我的域类中有一个带有 @CacheKeyMethod 注释的方法。
但问题是我在不同场景中使用相同的域类,并且在每种情况下生成的密钥具有不同的逻辑。例如,User
其中一个场景的类要求键在city
and方面是唯一的gender
,但在另一种情况下,它要求在用户方面是唯一的email
,它本质上是您的查找所基于的。
虽然用户的电子邮件将决定城市和性别,所以我也可以在第一种情况下使用电子邮件作为键,但这意味着每个用户都有单独的缓存条目,而缓存的数据将相同,只要性别和城市相同,这有望大幅提高命中率(想想你可以期望有多少用户是来自班加罗尔的男性)。
有没有办法可以定义不同的键。如果生成密钥的逻辑可以从域类本身外部化,那就太好了。
我阅读了文档并发现某些东西称为CacheKeyBuilder
和/或CacheKeyBuilderImpl
可以解决问题,但我不明白如何继续。
编辑.. 好的..我有一个线索!CacheKeyBuliderImpl 所做的是,它调用 defaultKeyProvider 实例上的 generateKey 方法,该方法在提供的域类的方法上查找 @cachekeyannotation 并执行找到的方法以获取密钥。
因此,CacheKeyBuilderImpl
用自定义 Impl 替换 或用KeyProvider
你的替换 CacheKeyBuilderImpl 中的默认实现可能会解决问题……但是 keyprovider 引用是硬连线到 DefaultKeyProvider 的。
任何人都可以帮助我实现 CacheKeyBuilder(关于不同方法的作用;文档没有说明)以及如何注入它以代替通常的 CacheKeyBuilderImpl
java - 如何找到哪个 memcached 服务器存储哪个键值对
我目前正在使用两个 memcached 服务器并按上述方式存储键值对。在此之后我无法找出哪个服务器存储哪个键值对...
我知道 memcached 是随机分布的。
如果我删除一台服务器,然后我尝试获取上述所有值
我将得到一半的值 null。
有什么方法可以找到哪个键值对在哪个服务器上。
请帮忙
memcached - 如何在netty中异步访问memcached
我正在用 netty 编写一个服务器,我需要在其中调用 memcached。我正在使用 spymemcached 并且可以轻松地进行同步 memcached 调用。我希望这个 memcached 调用是异步的。那可能吗?netty 提供的示例似乎没有帮助。
我尝试使用回调:ExecutorService
在我的 Handler 中创建了一个池,并向该池提交了一个回调工作者。像这样:
公共类 MyHandler 扩展 ChannelInboundMessageHandlerAdapter<MyPOJO> 实现 CallbackInterface{
}
CallingbackWorker
好像:
公共类 CallingbackWorker 实现 Callable {
但是,当我这样做时,this.ctx.nextOutboundMessageBuf()
会myCallback
卡住。
所以,总的来说,我的问题是:如何在 Netty 中进行异步 memcached 调用?
memcached - Memcached 客户端-服务器通信
我一直在研究 memcached,我打算在客户端上将它与 spymemcached 一起使用。我只是好奇两者之间的客户端/服务器通信是如何工作的。创建 memcached 客户端对象时,您可以传入服务器列表,但是在创建客户端之后,服务器和客户端之间是否有任何通信说它们仍然存在并且客户端发送特定的服务器信息?我试过浏览 memcached 和 spymemcached 文档站点,但还没有找到任何东西。
java - net.spy.memcached.OperationTimeoutException:超时等待值
我将一组值存储到 memcached 客户端中,键为 setOfKeys。我将值放入 memcached 中,如下所示
但是当我尝试按如下方式从缓存中获取 setOfKeys 时,它给了我错误
net.spy.memcached.OperationTimeoutException: Timeout waiting for value
java - 使用 spymemcached 和 HashAlgorithm.KETAMA_HASH 时如何处理恢复 memcached 节点
我正在使用 spymemcached 和 HashAlgorithm.KETAMA_HASH 连接到 5 个节点的 memcached 池。
我的理解是当我们使用一致的散列算法时,当一个节点关闭时,我们不需要担心,因为密钥会被重新分配(影响最小)
如果宕机的节点要加入池怎么办。我需要做什么?
我是否应该确保需要删除过时的数据?或者我的程序是否需要针对这种情况进行特殊处理?
java - Memcached ClassNotFound 异常
所以我想我对 memcached 的工作原理有点困惑。我正在使用不同的框架开发相同的 API,所有这些框架都包含 memcached(java 版本 spymemcached)。当我在我的第一个框架上设置 memcached 时,它按预期工作。现在我试图将它合并到我正在使用的第二个框架中,我不断收到一个 ClassNotFoundException ,它试图在我使用的第一个框架中找到一个类,因此不缓存任何东西。也许有人可以启发我了解我的逻辑缺陷。这是两个类(它们是相同的,因为我在不同平台上构建相同的 API),core.Party
该类在第一个类中(在运行相应的应用程序时有效),这pojo.PojoParty
是我的第一个和第二个框架使用那个不'
这是它发生的类的构造函数:
这是它试图达到的不属于第二个框架的类(这是来自第一个框架的 pojo 类):
这是相同的课程,但在我尝试运行的项目中
这是堆栈跟踪:
java - 11211以外的memcached服务器如何更改端口号
我想在同一组服务器上拥有两个 memcachedClient 实例,因此我可以将一组密钥存储在第一个客户端 1 上,另一组存储在第二个客户端上。所以我将这两个实例声明为
在这里,我指定 client2 正在侦听另一个端口 11212。但我收到 java.net.ConnectException:
p>由于 client2 声明。
memcached -p 11211 -d start
我已经安装了 memcached ,然后memcached -p 11212 -d start
在 CMD 中执行了命令。