memcached源码分析-----memcached启动参数详解以及关键配置的默认值


         转载请注明出处: http://blog.csdn.net/luotuo44/article/details/42672913


        本文开始本系列博文的代码分析。本系列博文研究的memcached版本是1.4.21

        本文将给出memcached启动时各个参数的详细解释以及一些关键配置的默认值。以便在分析memcached源码时可以随时查看。当然也方便使用memcached时可以随时查看各个参数的含义。《如何阅读memcached源码》说到memcached有很多全局变量(也就是关键配置),这些全局变量会给源码分析带来一定的困扰。因此在阅读memcached代码时可以假设这些全局变量(关键配置)取默认值,并且其值不会改变。


关键配置的默认值:


        很多关键配置变量都是全局结构体变量settings的成员变量。函数settings_init会将这些关键配置变量赋默认值。下面就把这些变量列出来并给予解释。

static void settings_init(void) {
	//开启CAS业务,如果开启了那么在item里面就会多一个用于CAS的字段。可以在启动memcached的时候通过-C选项禁用
    settings.use_cas = true;
	
    settings.access = 0700; //unix socket的权限位信息
    settings.port = 11211;//memcached监听的tcp端口
    settings.udpport = 11211;//memcached监听的udp端口
	//memcached绑定的ip地址。如果该值为NULL,那么就是INADDR_ANY。否则该值指向一个ip字符串
    settings.inter = NULL;
	
    settings.maxbytes = 64 * 1024 * 1024; //memcached能够使用的最大内存
    settings.maxconns = 1024; //最多允许多少个客户端同时在线。不同于settings.backlog
   
	settings.verbose = 0;//运行信息的输出级别.该值越大输出的信息就越详细
    settings.oldest_live = 0; //flush_all命令的时间界限。插入时间小于这个时间的item删除。
    settings.evict_to_free = 1;  //标记memcached是否允许LRU淘汰机制。默认是可以的。可以通过-M选项禁止  
    settings.socketpath = NULL;//unix socket监听的socket路径.默认不使用unix socket 
    settings.factor = 1.25; //item的扩容因子
    settings.chunk_size = 48; //最小的一个item能存储多少字节的数据(set、add命令中的数据)
    settings.num_threads = 4; //worker线程的个数
	 //多少个worker线程为一个udp socket服务 number of worker threads serving each udp socket
    settings.num_threads_per_udp = 0;
	
    settings.prefix_delimiter = ':'; //分隔符
    settings.de
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值