linux之memcache编译安装及使用


memcache是一套分布式的高速缓存系统,特点为key-value 存储。

1、编译安装memcache

安装依赖工具包

编译安装memcache、redis等,需要 gcc,make,cmake,autoconf,libtool 等工具, 直接使用yum安装即可.

yum install -y gcc make cmake autoconf libtool

下载官方源码

memcached依赖于libevent库,libevent是一个轻量级的基于事件驱动的高性能的开源网络库,并且支持多个平台,对多个平台的I/O复用技术进行了封装,当我们编译库的代码时,编译的脚本将会根据OS支持的处理事件机制,来编译相应的代码,从而在libevent接口上保持一致,因此需要先安装 libevent。

libevent下载地址:http://libevent.org/,最新版本2.1.11

memcache官网下载地址:http://memcached.org/,最新版本1.5.17

cd /opt/
wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz 
wget http://www.memcached.org/files/memcached-1.5.17.tar.gz  

安装libevent依赖和memcache:

tar zxvf libevent-2.1.11-stable.tar.gz

cd libevent-2.1.11-stable

./configure --prefix=/usr/local/libevent  

make && make install

cd ..
tar zxvf memcached-1.5.17.tar.gz

cd memcached-1.5.17

./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent

make && make install

注意在configure过程中如果报错,一般是缺少库,安装完成后就会在/usr/local目录下看到memcached目录,启动memcache:

cd /usr/local/memcached
/usr/local/memcached/bin/memcached -d -m 8192M -p 11211 -c 2048 -I 2m -u memcached

主要参数如下:
-d 选项是启动一个守护进程,
-m 是分配给Memcache使用的内存数量,单位是MB,这里是8192MB
-p 是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口
-c 选项是最大运行的并发连接数,默认是1024,这里设置了2048
-I 调整分配page页的大小,默认1M,最小1K,最大1024M;
-u 是运行Memcache的用户,如果当前为 root 的话,需要使用此参数指定用户memcached
-l 是监听的服务器IP地址,如果有多个地址的话,默认是服务器的IP地址,可省略
-P 是设置保存Memcache的pid文件,可省略

也可以启动多个守护进程,但是端口不能重复

2、连接使用memcache

telnet连接memcache

[root@localhost ~]# telnet 192.168.168.168 11211   
Trying 192.168.168.168...  
Connected to 192.168.168.168 (192.168.168.168).  
Escape character is '^]'.   

连接成功之后,即可对memcache进行操作管理。

常用命令

添加修改

命令格式:<command> <key> <flags> <exptime> <bytes>\r\n<data block>\r\n
<command>:add, set或 replace
<key> :缓存的名字
<flag>:16位无符号整数,和key要存储的数据一起存储,并在程序get缓存时,返回。
<exptime>:过去时间,0 表示永远不过期,如果非零,表示unix时间或距此秒数
<bytes>:存储数据的字节数
 \r\n: 表示换行回车
 命令结果:
              STORED :表示成功
              NOT_STORED : 表示失败 

添加缓存

add id 1 0 4  
1234  
STORED  
         如果key已经存在,则会添加失败。

修改缓存

replace id 1 0 4  
3456  
STORED  
     key存在时,成功;不存在时,失败。

设置缓存

set id 1 0 4  
2345  
STORED  
    key不存在时,添加【add】;已存在时,替换【replace】。

读取

命令格式:get +\r\n

+:表示一个或多个key,多个key时,用空格隔开

a、读取单个key的缓存

get id  
VALUE id 1 4  
1234  
END  

b、读取多个key的缓存

get id name  
VALUE id 1 4  
3456  
VALUE name 1 3  
jim  
END  

删除

命令格式:delete \r\n

< key >:要删除的key

删除id

delete id   
DELETED  

清空所有缓存

命令格式:flush_all

flush_all  
OK  

查看缓存服务器状态

命令:stats

stats
STAT pid 4843
STAT uptime 863252
STAT time 1568601757
STAT version 1.5.16
STAT libevent 2.1.10-stable
STAT pointer_size 64
STAT rusage_user 104.157308
STAT rusage_system 19.241643
STAT max_connections 2048
STAT curr_connections 12
STAT total_connections 24
STAT rejected_connections 0
STAT connection_structures 13
STAT reserved_fds 20
STAT cmd_get 53
STAT cmd_set 26
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 0
STAT get_misses 53
STAT get_expired 0
STAT get_flushed 0
STAT delete_misses 3
STAT delete_hits 2
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 20596
STAT bytes_written 594
STAT limit_maxbytes 8589934592
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT slab_reassign_rescues 0
STAT slab_reassign_chunk_rescues 0
STAT slab_reassign_evictions_nomem 0
STAT slab_reassign_inline_reclaim 0
STAT slab_reassign_busy_items 0
STAT slab_reassign_busy_deletes 0
STAT slab_reassign_running 0
STAT slabs_moved 0
STAT lru_crawler_running 0
STAT lru_crawler_starts 68596
STAT lru_maintainer_juggles 4553164
STAT malloc_fails 0
STAT log_worker_dropped 0
STAT log_worker_written 0
STAT log_watcher_skipped 0
STAT log_watcher_sent 0
STAT bytes 0
STAT curr_items 0
STAT total_items 26
STAT slab_global_page_pool 0
STAT expired_unfetched 3
STAT evicted_unfetched 0
STAT evicted_active 0
STAT evictions 0
STAT reclaimed 3
STAT crawler_reclaimed 0
STAT crawler_items_checked 56
STAT lrutail_reflocked 0
STAT moves_to_cold 17
STAT moves_to_warm 0
STAT moves_within_lru 0
STAT direct_reclaims 0
STAT lru_bumps_dropped 0
END

打印版本

命令:version

version  
VERSION 1.5.16  

打印内存信息

命令:stats slabs

stats slabs
STAT 4:chunk_size 192
STAT 4:chunks_per_page 5461
STAT 4:total_pages 1
STAT 4:total_chunks 5461
STAT 4:used_chunks 0
STAT 4:free_chunks 5461
STAT 4:free_chunks_end 0
STAT 4:mem_requested 0
STAT 4:get_hits 0
STAT 4:cmd_set 2
STAT 4:delete_hits 0
STAT 4:incr_hits 0
STAT 4:decr_hits 0
STAT 4:cas_hits 0
STAT 4:cas_badval 0
STAT 4:touch_hits 0
STAT 5:chunk_size 240
STAT 5:chunks_per_page 4369
STAT 5:total_pages 1
STAT 5:total_chunks 4369
STAT 5:used_chunks 0
STAT 5:free_chunks 4369
STAT 5:free_chunks_end 0
STAT 5:mem_requested 0
STAT 5:get_hits 0
STAT 5:cmd_set 5
STAT 5:delete_hits 0
STAT 5:incr_hits 0
STAT 5:decr_hits 0
STAT 5:cas_hits 0
STAT 5:cas_badval 0
STAT 5:touch_hits 0
STAT 9:chunk_size 600
STAT 9:chunks_per_page 1747
STAT 9:total_pages 1
STAT 9:total_chunks 1747
STAT 9:used_chunks 0
STAT 9:free_chunks 1747
STAT 9:free_chunks_end 0
STAT 9:mem_requested 0
STAT 9:get_hits 0
STAT 9:cmd_set 6
STAT 9:delete_hits 0
STAT 9:incr_hits 0
STAT 9:decr_hits 0
STAT 9:cas_hits 0
STAT 9:cas_badval 0
STAT 9:touch_hits 0
STAT 12:chunk_size 1184
STAT 12:chunks_per_page 885
STAT 12:total_pages 1
STAT 12:total_chunks 885
STAT 12:used_chunks 0
STAT 12:free_chunks 885
STAT 12:free_chunks_end 0
STAT 12:mem_requested 0
STAT 12:get_hits 0
STAT 12:cmd_set 5
STAT 12:delete_hits 0
STAT 12:incr_hits 0
STAT 12:decr_hits 0
STAT 12:cas_hits 0
STAT 12:cas_badval 0
STAT 12:touch_hits 0
STAT 13:chunk_size 1480
STAT 13:chunks_per_page 708
STAT 13:total_pages 1
STAT 13:total_chunks 708
STAT 13:used_chunks 0
STAT 13:free_chunks 708
STAT 13:free_chunks_end 0
STAT 13:mem_requested 0
STAT 13:get_hits 0
STAT 13:cmd_set 6
STAT 13:delete_hits 2
STAT 13:incr_hits 0
STAT 13:decr_hits 0
STAT 13:cas_hits 0
STAT 13:cas_badval 0
STAT 13:touch_hits 0
STAT 14:chunk_size 1856
STAT 14:chunks_per_page 564
STAT 14:total_pages 1
STAT 14:total_chunks 564
STAT 14:used_chunks 0
STAT 14:free_chunks 564
STAT 14:free_chunks_end 0
STAT 14:mem_requested 0
STAT 14:get_hits 0
STAT 14:cmd_set 2
STAT 14:delete_hits 0
STAT 14:incr_hits 0
STAT 14:decr_hits 0
STAT 14:cas_hits 0
STAT 14:cas_badval 0
STAT 14:touch_hits 0
STAT active_slabs 6
STAT total_malloced 6291456
END

参考:https://www.cnblogs.com/52lnamp/p/9554340.html
https://blog.csdn.net/kankan231/article/details/18656623

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值