解决.NET JAVA PHP中写入及读取memcache中数据不一致的方法。公司部分接口使用PHP开发,部分接口使用.NET开放,.NET使用redis,PHP使用memcache作为分布式缓存服务器,但是部分业务需要.NET读取memcache里的数据。memcache部署在linux上,现在发现.NET写入的缓存PHP可以正常读取,但是PHP写入的缓存.NET读到的是NULL。
源码下载地址:BelTMemcached(csharp).rar
在网上搜索了半天没找到好的解决方案,最后看到一篇文章《.NET JAVA PHP中写入及读取memcache中数据不一致问题》,知道了修改方法。
原理什么我也不赘述了,我这里整理了一份.NET版本的供大家下载。
下载后直接引用BelTMemcached文件夹下bin里面的BelTMemcached.dll就可以了。引用后在配置文件web.config的configsections节点下添加
<section name="beitmemcached" type="System.Configuration.NameValueSectionHandler"/>
然后在configuration节点下添加
<beitmemcached>
<add key="Memcache" value="xxx.xxx.xxx.xxx:xxx"/>
</beitmemcached>
然后就可以正常使用了。
调用示例:
public static object Get(string key) {
MemcachedClient mc = MemcachedClient.GetInstance("Memcache");
return mc.Get(key);
}
public static object Set(string key, object value, int cachetime) {
MemcachedClient mc = MemcachedClient.GetInstance("Memcache");
return mc.Set(key, value, DateTime.Now.AddSeconds(cachetime));
}
上面是简单的调用示例,GetInstance里面传入你的配置的key,如上面的Memcache。
你也可以研究一下源代码。