0
这似乎为思想,无论什么样的价值观,我们配置的memcached为到期时间使用所有在缓存中的项目得到5分钟的到期时间。
我们已经尝试
- 使用0到期,所有的文件显示,这意味着该项目应永不过期。
- 使用过期600秒。
- 将来使用Unix时间戳几小时(例如,1455058122)。
在所有情况下,当一个项目被缓存并且我检索cachedump时,过期时间戳将来只有5分钟。
这是非常令人沮丧的,因为除了这个主要缺陷之外,memcached的工作很棒。
的设置
- .NET 3.5
- 的Visual Studio 2015年
- 的NHibernate 3.1.0.4000
- EnyimCached 2.3.0.0
- Memcached的1.4.5_4_gaa7839e
的Web.config
<enyimmemcache>
<memcached protocol="Binary">
<servers>
<add key="MemcachedAddress" address="127.0.0.1" port="11211" />
<!-- Add new servers here -->
</servers>
<socketPool connectionTimeout="00:00:02" />
<cache region="system" expiration="0" priority="5" />
</memcached>
</enyimmemcache>
休眠配置
<property name="cache.provider_class">NHibernate.Caches.EnyimMemcached.MemCacheProvider,NHibernate.Caches.EnyimMemcached</property>
<property name="cache.use_second_level_cache">true</property>
Stats.bat
@echo off>nul
setlocal EnableDelayedExpansion
IF "%1"=="-o" rm dump.log
set SAVESTAMP=%DATE:/=-%@%TIME::=:%
echo --------------[%SAVESTAMP%]-------------- >> dump.log
echo stats items | nc 127.0.0.1 11211 > statsitems
SET myvar=""
FOR /f "tokens=1,2,3 delims=:" %%i in (statsitems) do (
if NOT %%j==!myvar! (
SET myvar=%%j
echo stats cachedump !myvar! 1000000 | nc 127.0.0.1 11211 >> dump.log
)
)
rm statsitems