C#客户端FlushAll(),缓存数据没有清空,怎么回事?有人遇到吗?
若是Remove(cache_key)是可以。
代码如下:
写入:
MemcachedClient cacheClient =GetInstance();
bool isSuccess = cacheClient.Store(StoreMode.Set, cache_key, "hello");
清空:
MemcachedClient cacheClient = GetInstance();
cacheClient.FlushAll();
--------------------
private static MemcachedClient MemClient;
static readonly object padlock = new object();
//线程安全的单例模式
public static MemcachedClient GetInstance()
{
if (MemClient == null)
{
lock (padlock)
{
if (MemClient == null)
{
MemClientInit();
}
}
}
return MemClient;
}
static void MemClientInit()
{
//初始化缓存
MemcachedClientConfiguration memConfig = new MemcachedClientConfiguration();
IPAddress newaddress = IPAddress.Parse(Dns.GetHostEntry("实例ID.m.cnhzaliqshpub001.ocs.aliyuncs.com").AddressList[0].ToString()); //your_instanceid替换为你的OCS实例的ID
IPEndPoint ipEndPoint = new IPEndPoint(newaddress, 11211);
// 配置文件 - ip
memConfig.Servers.Add(ipEndPoint);
// 配置文件 - 协议
memConfig.Protocol = MemcachedProtocol.Binary;
// 配置文件-权限,如果使用了免密码功能,则无需设置userName和password
memConfig.Authentication.Type = typeof(PlainTextAuthenticator);
memConfig.Authentication.Parameters["zone"] = "";
memConfig.Authentication.Parameters["userName"] = "实例 uesrname";
memConfig.Authentication.Parameters["password"] = "实例password";
//下面请根据实例的最大连接数进行设置
memConfig.SocketPool.MinPoolSize = 5;
memConfig.SocketPool.MaxPoolSize = 200;
MemClient=new MemcachedClient(memConfig);
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。