开发者社区> 技术小阿哥> 正文

Memcache的简单笔记

简介:
+关注继续查看

一、原理和流程

   Memcache是高性能的分布式的内存缓存系统,一般作为数据库的前端cache使用,来减轻数据库的压力,提高系统对数据的响应速度;

其特征如下:

(1)协议简单,基于libevent的事件处理;

(2)内置的内存管理方式;使用LRU算法,当数据快占满指定的内存空间时,新数据会重用过期数据的内存空间;

(3)每个MEMCACHE服务器相对独立,互不通信;

在系统应用中,其操作流程如下:

(1)当客户端查询数据时,先查看memcache是否存在,如果存在,直接把请求的数据返回给客户端,不再进行下一步的操作;

(2)如果请求的数据不在memcahe中,客户端就去查询数据库,然后把查询到数据返回给客户端,同时将数据存放一份副本到mencache中;

(3)每次更新数据库的同时更新memcache中的数据,保证memcahe中的数据尽量最新;

(4)指定的内存使用完毕后,会使用LRU(Least Recently Used)策略,新数据替换失效的数据,然后是最近未被使用的数据;


二、安装、启动和关闭

(1)安装libevent;

1
2
3
4
wget https://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz 
tar -axvf libevent-2.0.22-stable.tar.gz
cd libevent-2.0.22-stable
./configure && make && make install

(2)安装memcache

1
2
3
4
wget http://memcached.org/files/memcached-1.4.22.tar.gz
tar -axvf memcached-1.4.22.tar.gz
cd memcached-1.4.22
./configure && make && make install

(3)启动memcache

1
/usr/local/bin/memcached -u root -m 128 -P /var/run/memcached.pid -d

*关于memcached参数可以通过“/usr/local/bin/memcached -h”来查看

(4)关闭memcache

1
kill `cat /var/run/memcached.pid`


三、简单操作

(1)进入memcache

1
2
3
4
5
6
7
8
telnet 127.0.0.1 11211 #telnet进入memcache界面
set test  0 0 10    #存入test
this             #输入test的值
STORED            #返回存入成功
get test           #查询test的值
VALUE test 0 10
this             #返回test的值
END

*类似的命令还有add、replace

(2)查询memcache的各种统计状态

1
2
3
4
stats     #查询memcache的各种统计状态
stats reset #重置各种状态统计结果
stats items #显示slabs中items的数目
stats slabs #显示slabs信息


四、memcache的监控

利用memcache.php进行监控,下载memcache.php

1
wget http://pecl.php.net/get/memcache-2.2.7.tgz

将其解压缩到nginx或者apache的根目录

修改memcache.php文件中下面的行,可添加多台memcache监控;

1
$MEMCACHE_SERVERS[] = 'mymemcache-server:11211';

 



本文转自 bannerpei 51CTO博客,原文链接:http://blog.51cto.com/281816327/1621298,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
24850 0
runtime system学习笔记
经常听到runtime这个词,却不知是做什么的,最近在一本书上看到了它的一点相关知识,记录如下: 1、Object-C是一门动态编程语言,具有动态特性,所以,OC不仅需要编译环境,也需要运行时系统(runtime system)来执行编译好的代码。
666 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
14689 0
java学习笔记--常用类(System,Runtime,date类, Math 数学类,Random 随机数类 )
System类 System.arraycopy(srcArr, 1, destArr, 0,4); 重要 数组间赋值 集合的时候会用到 System.exit(0)正常退出 非0 异常退出 一般都是tyr中exit(0) catch中 exit(非0) System.currentTimeMillis()当前的系统时间 从1971开始 的毫秒单位 重要 System.gc() 建议jvm赶快启动垃圾回收期回收垃圾。
1132 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18103 0
论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning
论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning  2017-06-06  21:43:53      这篇文章的 Motivation 来自于 MDNet:         本文所...
1672 0
【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记19 为Demo添加手势
在这一话中我们将应用上一话学到的知识来为Demo添加手势识别,首先添加一个缩放的功能,其次添加一个拖动功能,使得小人的表情可以随着我们的手指改变。
820 0
【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记22 多MVC模式Demo中的AutoLayout自动布局
上一话我们详细介绍了多MVC模式以及Segue过渡的时候,这一话用一个新的Demo来诠释。 我们新建一个Psychologist的工程。
736 0
13692
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载