private void Form1_Load(object sender, EventArgs e) { //加载配置 config = ServersConfig.GetConfig(); foreach (Server s in config.Servers) { this.comboBox_Servers.Items.Add(s.PoolName); } this.comboBox_Servers.SelectedIndex = 0; }
/// <summary> /// 创建Memcache服务 /// </summary> /// <param name="serverlist">IP端口列表</param> /// <param name="poolName">Socket连接池名称</param> /// <returns>Memcache客户端代理类</returns> private static void CreateServer() { try { serverList = new ArrayList(); //获取Memcached服务配置 ServersConfigInfo config = ServersConfig.GetConfig(); foreach (Server s in config.Servers) { string host = s.IP + ":" + s.Port; //初始化Memcache服务器池 SockIOPool pool = SockIOPool.GetInstance(s.PoolName); //设置Memcache池连接点服务器端。 pool.SetServers(new string[] { host }); pool.InitConnections = config.InitConnections;//初始连接数 pool.MinConnections = config.MinConnections;//最小连接数 pool.MaxConnections = config.MaxConnections;//最大连接数 pool.SocketConnectTimeout = config.SocketConnectTimeout;//设置连接的套接字超时 pool.SocketTimeout = config.SocketTimeout;//设置套接字超时读取 pool.MaintenanceSleep = config.MaintenanceSleep;//设置维护线程运行的睡眠时间。如果设置为0,那么维护线程将不会启动,30就是每隔30秒醒来一次 //获取或设置池的故障标志。 //如果这个标志被设置为true则socket连接失败,将试图从另一台服务器返回一个套接字如果存在的话。 //如果设置为false,则得到一个套接字如果存在的话。否则返回NULL,如果它无法连接到请求的服务器。 pool.Failover = config.Failover; pool.Nagle = config.Nagle;//如果为false,对所有创建的套接字关闭Nagle的算法 pool.Initialize(); serverList.Add(host); } //创建默认Memcache客户端实例。 mc = GetClient(config.DefaultServer); } catch (Exception ex) { throw ex; } }