Linux 下搭建 Memcached 集中式缓存系统

文章
林里克斯

Memcached 是一个内存中键值存储,用于存储来自数据库调用,API调用或页面呈现结果的任意小数据块(字符串,对象)。

Linux 下搭建 Memcached 集中式缓存系统


实验平台:CentOS 7.6.1810

Memcached Version:1.6.8



一、安装


1.官网

http://memcached.org/
  • yum 安装
$ yum -y install memcached

启动 memcached

$ systemctl start memcached
$ ps -ef | grep memcached
memcach+   7100      1  0 05:23 ?        00:00:00 /usr/bin/memcached -u memcached -p 11211 -m 64 -c 1024
root       7107   7016  0 05:23 pts/0    00:00:00 grep --color=auto memcached
$ netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:11211           0.0.0.0:*               LISTEN      7100/memcached               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6740/sshd                     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6840/master         
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      6750/zabbix_agentd  
tcp6       0      0 :::11211                :::*                    LISTEN      7100/memcached               
tcp6       0      0 :::22                   :::*                    LISTEN      6740/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      6840/master         
tcp6       0      0 :::10050                :::*                    LISTEN      6750/zabbix_agentd
#默认监听 11211
  • 源码安装

memcached 依赖 libevent

$ rpm -qa | grep libevent

安装 libevent

$ yum -y install libevent-devel
$ rpm -qa | grep libevent
libevent-2.0.21-4.el7.x86_64
libevent-devel-2.0.21-4.el7.x86_64

或使用编译安装 libevent

$ wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz
$ tar xf libevent-2.1.11-stable.tar.gz
$ cd libevent-2.1.11-stable
$ ./configure --prefix=/data/libevent
$ make && make install

在官网下载 memcached 编译包

$ wget https://memcached.org/files/memcached-1.6.8.tar.gz

编译安装

$ ./configure --prefix=/data/memcached
#yum 安装的 libevent 可以直接编译不需指定
$ make && make install
$ ./configure --prefix=/data/memcached --with-libevent=/data/libevent
#编译安装的 libevent 需指定路径
$ make && make install

如果没有安装 libevent 会有以下依赖报错

If it's already installed, specify its path using --with-libevent=/dir/

启动

$ /data/memcached/bin/memcached -vv
slab class   1: chunk size        96 perslab   10922
slab class   2: chunk size       120 perslab    8738
···
···
···
slab class  39: chunk size    524288 perslab       2
# -vv 显示详细信息

安装完成


二、命令详解


$ /data/memcached/bin/memcached -h
memcached 1.6.8
-p, --port=<num>          #指定 TCP 监听端口。默认使用 11211
-U, --udp-port=<num>      #指定 UDP 监听端口,默认关闭 (default: 0, off)
-s, --unix-socket=<file>  #要监听的 UNIX socket 路径(禁用网络支持)
-a, --unix-mask=<mask>    #UNIX socket的访问掩码(access mask),八进制表示,默认是0700. (mask)
-A, --enable-shutdown     #启用 shutdown 命令
-l, --listen=<addr>       #指定监听 IP,可以指定多个
-d, --daemon              #后台运行
-r, --enable-coredumps    #文件数量的最大值 (rlimit)
-u, --user=<user>         #指定用户运行,只有在 root 用户的才需要 (only when run as root)
-m, --memory-limit=<num>  #分配给多大内存,默认 64Mb
-M, --disable-evictions   #内存耗尽时返回错误,而不是通过 LRU 淘汰内容
-c, --conn-limit=<num>    #最大并发连接数,默认 1024
-k, --lock-memory         #锁定所有页内存;允许被锁定的内存是有限制的,超过限制可能会失败
-v, --verbose             #显示启动信息(错误和警告信息)
-vv                       #显示详细信息并打印客服端命令
-vvv                      #显示超详细信息及内部状态转换
-h, --help                #打印 help 信息
-i, --license             #打印 memcached 和 libevent 许可证
-V, --version             #打印版本信息
-P, --pidfile=<file>      #指定 pid 存放路径,尽在后台 -d 运行是需要
-f, --slab-growth-factor=<num>  #chunk的增幅因子,默认是1.25,不同的slab class,slab page大小相同,但是chunk大小不等,chunk的大小根据这个增幅因子增长;(factor)
-n, --slab-min-size=<bytes>     #为key+value+flags分配的最小内存,单位bytes,默认是48;chunk数据结构本身要占据48字节,所以实际大小是n+48;
-L, --enable-largepages         #一次申请大的内存页(如果可以);增大内存页的大小,可以提高性能
-D <char>                 #指定key前缀与ID的分隔符,用于stats信息显示,默认是冒号:,如果使用了该参数,则stats收集自动启用了,否则,需要发送命令“stats detail on”命令来启动stats的收集
-t, --threads=<num>       #使用多少个线程,默认是4
-R, --max-reqs-per-event  # 每一个事件(event)的最大请求数,限制最大请求数可以防止线程饥饿,默认是20
-C, --disable-cas         #不使用 CAS
-b, --listen-backlog=<num>      #设置 backlog 队列限制,默认1024
-B, --protocol=<name>     #指定绑定协议,ascii,binary或者auto,其中auto是默认值
-I, --max-item-size=<num> #设置 slab page 的大小,即设置可以保存的 item 的最大值,默认 1MB,最小是 1K,最大值 128M
-F, --disable-flush-all   #禁止 flush_all 命令
-X, --disable-dumping     #禁止统计 cachedump 和 lru_crawler metadump
-W  --disable-watch       #禁用 watch 命令(实时日志记录)
-Y, --auth-file=<file>    (EXPERIMENTAL) 启用 ASCII 协议身份验证. format: user:pass\nuser2:pass2\n

常用命令:

$ /data/memcached/bin/memcached -d
#后台启动
$ /data/memcached/bin/memcached -d -m 64M -u memcached -l 0.0.0.0 -p 11211 -c 256 -P /tmp/memcached.pid

Over ~

版权协议须知!

本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

1189 0 2020-11-01


分享:
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
博主卡片
林里克斯 博主大人
一个致力于Linux的运维平台
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。

现在时间 2024-12-28

今日天气
站点统计
  • 文章总数:241篇
  • 分类总数:29个
  • 评论总数:12条
  • 本站总访问量 353167 次

@奥奥

@Wong arrhenius 牛比

@MakerFace 厉害了!