Linux下Memcache 安装和使用

Memcached是一种高性能的分布式内存对象缓存系统(memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能,其“分布式”由客户端函数库完成,成熟算法的为一致性Hash),用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。很多大型网站都使用了Memcached做缓存。MemCache依赖于libevent,后者是一个基于事件触发的网络库。

下面介绍Linux下MemCache数据库的安装和使用。

  libevent版本:libevent-2.0.22-stable.tar.gz

  MemCache版本:memcached-1.4.29.tar.gz

1、安装libevent

//make install后会在==prefix指定的地方产生 bin、include、lib 文件夹

[root@localhost src]# tar -zxvf libevent-2.0.22-stable.tar.gz
[root@localhost src]# cd libevent-2.0.22-stable
[root@localhost libevent-2.0.22-stable]# ./configure --prefix=/usr/local/libevent
[root@localhost libevent-2.0.22-stable]# make
[root@localhost libevent-2.0.22-stable]# make install

2、安装Memcached服务端

//make install后会在==prefix指定的地方产生 bin、include、share 文件夹

[root@localhost src]# tar -zxvf memcached-1.4.29.tar.gz 
[root@localhost src]# cd memcached-1.4.29
[root@localhost memcached-1.4.29]# ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
[root@localhost memcached-1.4.29]# make
[root@localhost memcached-1.4.29]# make install

3、启动

[root@localhost /] /usr/local/memcached/bin/memcached -d -m 256 -u root -p 11211 -c 1024 -P /tmp/memcached.pid

选项说明:(更多参考 简单之美的博客 )

    -d:选项是启动一个守护进程,
    -m:是分配给Memcache使用的内存数量,单位是MB,默认是64 MB.
    -M:内存耗尽时返回错误而并非删除条目.
    -u:是运行Memcache的用户.
    -l:是监听的服务器IP地址,我这里没有填.
    -p:是设置Memcache tcp监听的端口,默认是11211.
    -c:选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定.
    -P:是设置保存Memcache的pid文件.
    -vv:打印客户端的请求和返回信息.
    -i:打印memcached和libevent的版权信息
    -h:查看选项说明
运行 telnet localhost 11211 能连上则说明启动成功

4、命令行操作

4.1 基本常用操作

 

先:telnet localhost 11211
写:set time 2016
读:get time
查看状态:stats
        pid                     Memcached 进程ID    
        uptime                  Memcached 运行时间,单位:秒    
        time                    Memcached 当前的UNIX时间    
        version                 Memcached 的版本号    
        rusage_user             该进程累计的用户时间,单位:秒   
        rusage_system           该进程累计的系统时间,单位:秒    
        curr_items              Memcached 当前存储的内容数量    
        total_items             Memcached 启动以来存储过的内容总数    
        bytes                   Memcached 当前存储内容所占用的字节数(*/1024/1024=mb)    
        curr_connections        当前连接数量    
        total_connections       Memcached 运行以来接受的连接总数    
        connection_structures   Memcached 分配的连接结构的数量    
        cmd_get                 查询请求总数    
        cmd_set                 存储(添加/更新)请求总数    
        ...
        get_hits                查询成功获取数据的总次数    
        get_misses              查询成功未获取到数据的总次数   
        bytes_read              Memcached 从网络读取到的总字节数    
        bytes_written           Memcached 向网络发送的总字节数   
        limit_maxbytes          Memcached 在存储时被允许使用的字节总数
退出telnet:quit

4.2 列出所有key

4.2.1 方法

先用  stats items  得到所有item的id;再用  stats cachedump item_id 0  得到item的key;最后可以根据key得到value。示例如下:(参考资料:Memcached: List all keys · Graham King

复制代码

stats items  
STAT items:1:number 3 //The first number after ‘items’ is the slab id. the value after 'number' is the pairs of K/V in the slab. 
......
STAT items:23:crawler_items_checked 0
STAT items:23:lrutail_reflocked 0
END

stats cachedump 23 0 //Request a cache dump for each slab id, with a limit for the max number of keys to dump. dump all key in the corresponding slab when it's 0
ITEM beijing_car_distribution [11215 b; 0 s]
END

get beijing_car_distribution
VALUE beijing_car_distribution 0 11215
[{"region":"881,1731","count":6},{"region":"874,1730","count":29}
......"count":5}]
END

复制代码

4.2.2 命令

复制代码

host=192.168.6.1
port=11211
num=`echo 'stats items' |nc $host $port |grep number |tail -n1 | grep -o ":[0-9]\+" |grep -o "[0-9]\+" `
for ((i=1;i<=$num;i++))
  do
     echo
     echo
     echo 'slab '$i
     echo 'stats cachedump '$i' 0' | nc $host $port 
   done

4.2.3 其他组合命令

得到 items:id:number xx 列表: echo 'stats items' |nc 192.168.6.135 11211 |grep number 

得到某个itemid的所有K/V pair: echo stats cachedump 22 0 | nc 192.168.6.135 11211 

4.3 各命令行具体用法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值