Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
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;
            }
        }