设为首页 收藏本站
查看: 1027|回复: 0

[经验分享] Ubuntu 16.04安装Memcached(单机)

[复制链接]

尚未签到

发表于 2017-11-23 08:32:37 | 显示全部楼层 |阅读模式
  Ubuntu 16.04安装Memcached,不过不仅限与Ubuntu,可以用CentOS等去安装,只不过测试时使用的是Ubuntu机器。Windows下不建议使用,本机调试可以使用,线上环境除了Windows之外都可以使用。
  说明:在Linux下建议使用源码的形式安装,至少整个安装的文件是清晰的,包括新建了什么文件等。在CentOS下要注意管理员权限运行。
  准备条件:
  Linux系统安装memcached,首先要先安装libevent库。
  自动安装:



#(Ubuntu/Debian)
sudo apt-get install libevent libevent-deve
#(Redhat/Fedora/Centos)
yum install libevent libevent-deve
  源代码安装:
  下载最新版:http://libevent.org/



tar -zxvf libevent-2.1.8-stable.tar.gz
cd libevent-2.1.8-stable/
sudo su
./configure  
make && make install
  安装Memcached
  自动安装:



#(Ubuntu/Debian)
sudo apt-get install memcached
#(Redhat/Fedora/Centos)
yum install memcached
#(FreeBSD)
portmaster databases/memcached
  源代码安装:
  从其官方网站(http://memcached.org)下载Memcached最新版本。



#下载最新版本
wget http://memcached.org/latest                    
#重命名
mv latest memcached.tar.gz
#解压源码
tar -zxvf memcached.tar.gz                    
#进入目录
cd memcached-1.5.1/      
#切换root权限
sudo su                           
#配置
./configure --prefix=/usr/local/memcached/  
#编译      
make && make test                                   
#安装
make install                                   
  如果上面报libevent-2.1.so.6的错误,参考:http://www.cnblogs.com/EasonJim/p/7580220.html
  卸载(卸载前先kill全部进程:killall memcached):
  源代码安装的:



sudo rm  -rf /usr/local/memcached
  自动安装的:



#(Ubuntu)
sudo apt remove memcached
#(CentOS)
yum remove memcached
  Memcached运行
  Memcached命令的运行:



#命令帮助
/usr/local/memcached/bin/memcached -h                           
  注意:如果使用自动安装Memcached命令位于/usr/local/bin/memcached
  常用启动选项:


  • -d:是启动一个守护进程;
  • -m:是分配给Memcache使用的内存数量,单位是MB;
  • -u:是运行Memcache的用户;
  • -l:是监听的服务器IP地址,可以有多个地址;
  • -p:是设置Memcache监听的端口,最好是1024以上的端口;
  • -c:是最大运行的并发连接数,默认是1024;
  • -P:是设置保存Memcache的pid文件。
  详细启动选项:


  • "A":是否运行客户端使用shutdown命令。默认是不允许的。该选项将允许。客户端的shutdown命令会将Memcached进程杀死。该选项会将settings.shutdown_command赋值为false
  • "a":unix socket的权限位信息(访问掩码)。该选项的参数赋值给settings.access
  • "U":大写U。Memcached监听的UDP端口值,默认端口为11211。该选项的参数赋值给settings.udpport
  • "p":小写p,Memcached监听的tcp端口。默认端口为11211, 该选项的参数赋值给settings.port
  • "s":小写S。unix socket监听的socket路径。该选项的参数赋值给settings.socketpath
  • "m":小写m。Memcached能够使用的最大内存值,默认是64MB。参数单位为MB。该参数赋值给settings.maxbytes
  • "M":大写M。默认情况下,当Memcached的内存使用完后,将进行LRU机制淘汰item以腾出空间。如果使用本选项那么将关闭LRU功能。当然关闭LRU不代表不能存储新数据。如果Memcached里面存有过期失效的item,那么就可以存储新数据。否则将无法存储。该选项将settings.evict_to_free赋值为0。
  • "c":小写c。最多允许多少个客户端同时在线(这个值不等价于listen函数的第二个参数),该选项和后面的b选项有所不同。 默认值为1024个。该选项参数赋值给settings.maxconns。
  • "h":显示帮助信息
  • "i":显示memcached和libevent的版权信息
  • "k":小写k。将Memcached使用到的内存锁定在内存中,不准OS把Memcached的内存移动到虚拟内存。因为当OS把Memcached的内存移动到虚拟内存可能会导致页错误,降低Memcached的响应时间
  • "v":小写v。输出Memcached运行时的一些信息。-v -vv -vvv输出的信息依次增加。该选项会增加settings.verbose的值
  • "l":Memcached绑定的ip地址。如果不设置这个选项,那么Memcached将使用INADDR_ANY。如果想指定多个IP地址,那么该选项的参数可以由多个ip组成,ip之间用逗号分隔。也可以多次使用这个选项,此时端口应该尾随ip而不是单独用-p选项指定。例如-l 127.0.0.1:8888,192.168.1.112:9999 或者 -l 127.0.0.1:8888 -l 192.168.1.112:9999该选项参数将赋值给settings.inter
  • "d":以守护进程的形式运行Memcached
  • "r":将core文件大小设置为不受限制
  • "R":worker线程连续为某个客户端执行命令的最大命令数。该选项的参数赋值给settings.reqs_per_event
  • "u":小写u。当以root用户启动Memcached的时候需要指定Memcached的所属用户,其他用户启动Memcached不需要此选项
  • "P":大写p。该选项的参数指明Memcached的pid保存文件。要和-d选项配合使用。注意运行的用户是否有权限写对应的文件
  • "f":item的扩容因子。默认值为1.25。该选项的参数值可以是小数但必须大于1.0。该选项参数将赋值给settings.factor
  • "n":设置最小的item能存储多少字节的数据。该选项参数赋值给settings.chunk_size
  • "t":该选项的参数用于指定worker线程的个数,不建议超过64个。如果不设置该选项默认有4个线程。该参数会赋值给settings.num_threads
  • "D":参数字符作为前缀和ID的分隔符。使用了该选项才会自动收集状态信息。也可以在启动Memcached后,客户端使用stats detail on命令开启,此时默认的分隔符为冒号":"。该选项参数会赋值为settings.prefix_delimiter,并将settings.detail_enabled赋值为1
  • "L":如果OS允许的话,那么向OS申请更大的内存页。OS的默认内存页为4KB。大的内存页可以有效降低页表的大小,提高效率。此选项会使得Memcached预先先OS全部所需的申请内存。当然这些内存尽量是用大内存页分配的
  • "C":大写C。Memcached默认是使用CAS的,本选项是禁用CAS。本选项会将settings.use_cas赋值为false
  • "b":listen函数的第二个参数。该选项的参数赋值给settings.backlog。如果不设置该选项,那么默认为1024。该选项和前面的c选项有所不同
  • "B":Memcached支持文本协议和二进制协议。该选项的参数用于指定使用的协议。默认情况下是根据客户端的命令而自动判断(也叫协商),参数只能取auto、binary、ascii这三个字符串值。将参数将赋值给settings.binding_protocol
  • "I":slab分配器中,每一个页的大小。这个选项的参数是一个数值表示页的大小。默认单位是B也可以在数值后面带K或者M(大小写都行),表示KB和MB。页的大小小于1KB或者大于128MB都是不允许的。不推荐使用该选项。本选项参数会赋值给settings.item_size_max
  • "S":大写S。打开sasl安全协议。会将settings.sasl赋值为true
  • "F":禁止客户端的flush_all命令。默认是允许客户端的flush_all命令的。该选项将settings.flush_enabled赋值为false
  • "o":有下面几个子选项可以设置。这个选项是用来优化的

    • maxconns_fast:   如果连接数超过了最大同时在线数(由-c选项指定),立即关闭新连接上的客户端。该选项将settings.maxconns_fast赋值为true
    • hashpower:   哈希表的长度是2^n。可以通过选项hashpower设置指数n的初始值。如果不设置将取默认值16。该选项必须有参数,参数取值范围只能为[12, 64]。本选项参数值赋值给settings.hashpower_init
    • slab_reassign:   该选项没有参数。用于调节不同类型的item所占的内存。不同类型是指大小不同。某一类item已经很少使用了,但仍占用着内存。可以通过开启slab_reassign调度内存,减少这一类item的内存。如果使用了本选项,settings.slab_reassign赋值为true
    • slab_automove:   依赖于slab_reassign。用于主动检测是否需要进行内存调度。该选项的参数是可选的。参数的取值范围只能为0、1、2。参数2是不建议的。本选项参数赋值给settings.slab_automove。如果本选项没有参数,那么settings.slab_automove赋值为1
    • hash_algorithm:   用于指定哈希算法。该选项必须带有参数。并且参数只能是字符串jenkins或者murmur3
    • tail_repair_time:   用于检测是否有item被已死线程所引用。一般不会出现这种情况,所以默认不开启这种检测。如果需要开启这种检测,那么需要使用本选项。本选项需要一个参数,参数值必须不小于10。该参数赋值给settings.tail_repair_time
    • lru_crawler:   本选项用于启动LRU爬虫线程。该选项不需要参数。本选项会导致settings.lru_crawler赋值为true
    • lru_crawler_sleep:  LRU爬虫线程工作时的休眠间隔。本选项需要一个参数作为休眠时间,单位为微秒,取值范围是[0, 1000000]。该参数赋值给settings.lru_crawler_sleep
    • lru_crawler_tocrawl:   LRU爬虫检查每条LRU队列中的多少个item。该选项带有一个参数。参数会赋值给settings.lru_crawler_tocrawl


  1、作为前台程序运行:



/usr/local/memcached/bin/memcached -p 11211 -m 64m -vv
  这样会显示调试信息。命令在前台启动了Memcached,监听TCP端口11211,最大内存使用量为64M。调试信息的内容大部分是关于存储的信息。
  2、作为后台服务程序运行:



/usr/local/memcached/bin/memcached -p 11211 -m 64m -d
  或者



/usr/local/memcached/bin/memcached -d -m 64M -u root -l 192.168.0.200 -p 11211 -c 256 -P /tmp/memcached.pid
  3、查看启动状态



sudo netstat -ntpl | grep memcached
  测试



telnet 192.168.0.200 11211
  增加开机启动
  Ubuntu:
  有两种方式:1在rc.local中设置启动,2使用update-rc.d增加开机启动服务
  下面是通过rc.local启动的脚本:



#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#log
exec 2> /tmp/rc.local.log  # send stderr from rc.local to a log file  
exec 1>&2                  # send stdout to the same log file  
set -x                     #
tell sh to display commands before execution
#Memcached
/usr/local/memcache/bin/memcached -p 11211 -m 64m -d -u root
exit 0
  CentOS(没实践过):
  有三种方式:
  1在rc.local中设置启动(位置在/etc/rc.d/rc.local)。
  2使用chkconfig增加开机启动服务。
  3在scripts文件夹下有个memcaed.sysv的文件(注意:这个文件不适合Ubuntu),拷贝到/etc/init.d下,然后使用chkconfig进行服务的添加即可。
  离线版本:
  链接: https://pan.baidu.com/s/1kU9DLI3 密码: k6qg
  参考:
  http://www.iyunv.com/Linux/2016-07/133423.htm
  http://www.runoob.com/memcached/memcached-install.html
  http://www.wuwenhui.cn/3714.html(CentOS卸载Memcached)
  http://blog.csdn.net/ydwei918/article/details/46455471(CentOS卸载Memcached)
  http://blog.csdn.net/qq_33862332/article/details/50907951(启动参数参考)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-409745-1-1.html 上篇帖子: 【协议】3、HTTP 协议入门 下篇帖子: HTTP 协议入门
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表