我正在使用couchbase memcached存储桶作为我们旧的memcached缓存的替代品。 我在同一个集群上也有一个沙发根桶。
群集有两个节点,我使用的配置非常基本。
<couchbase>
<CouchBaseBucket>
<servers bucket="CouchBaseBucket" bucketPassword="password">
<add uri="http://10.100.10.97:8091/pools"/>
<add uri="http://10.100.10.98:8091/pools"/>
</servers>
</CouchBaseBucket>
<MemcachedBucket>
<servers bucket="MemcachedBucket" bucketPassword="password">
<add uri="http://10.100.10.97:8091/pools"/>
<add uri="http://10.100.10.98:8091/pools"/>
</servers>
</MemcachedBucket>
</couchbase>
(多桶配置是根据这里的SO帖子Couchbase multiple buckets in .NET app.config)
完成的问题是我并不总是为我刚刚插入的条目获得缓存命中(但有时候我会这样做)。整个存储桶只有2个可用GB中的4-5个项目,键值对包含20个字符键和Guid值,因此驱逐应该不是问题。
当我在只有一个主机的测试设置中尝试这个时,我从来没有遇到过这个问题,所以我怀疑这可能与NodeLocator有关,但NodeLocator应该是默认的KetamaNodeLocator,因为我没有定义一些东西其他在配置中。
我使用的客户端是Couchbase .NET客户端库,Assembly版本1.1.6.0,我的服务器是couchbase服务器1.8.1
任何想法可能出错?
答案 0 :(得分:0)
解决了,与多个主机无关。 嗯......差不多。
问题在于,未来主机的时钟之一已经关闭了两个小时。 #omg
我认为这对Couchbase来说是一个问题,因为它假定/要求所有涉及的服务器(运行服务器和运行客户端的服务器)必须同步它们的时钟。
无论如何,这可能会让一些可怜的灵魂节省一些时间的调查