Memcache介绍

Memcached介绍

Memcached是一款开源的、高性能的纯内存缓存服务软件。Mem是内存的意思,cache是缓存的意思,d是daemon的意思

Memcached在企业中的应用场景

优点:
1.对于用户来讲,用户访问网站更快了,体验更好了。
2.对网站来说,数据库压力降低了。只有当内存没有数据时才会去请求数据库。第一次写入的数据也会请求数据库。一般公司没有预热,只有当用户读取过数据库才会放到Memcached中。
3.提升了网站的并发访问,减少服务器数量。


memcache相关参数说明

-p <num>      指定监听端口 (default: 11211)
-l <addr>     绑定监听的网卡 
-d            后台运行
-u <username> 指定用户
-m <num>      分配内存大小 (default: 64 MB)
-c <num>      并发访问连接数 (default: 1024) 
-P <file>     指定pid文件存放路径,需要与-d一起使用
    memcache启动文件
[root@cache01 ~]# cat /usr/lib/systemd/system/memcached.service 
[Unit]  -----> 表示这个服务的介绍与一些依赖关系统
Description=Memcached
Before=httpd.service
After=network.target
[Service]----->表示这个服务怎么开启一些相关的参数 
Type=simple
EnvironmentFile=-/etc/sysconfig/memcached
ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS

[Install]----->安装
WantedBy=multi-user.target

Memcache服务部署

第一个里程:安装memcached服务端
yum -y install memcached
第二个里程:修改配置文件,并启动服务
[root@cache01 ~]# vim /etc/sysconfig/memcached 
PORT="11211"     --->端口号
USER="memcached" --->以什么用户运行
MAXCONN="1024"   --->最大的连接数
CACHESIZE="64"   --->缓存大小(MB)
OPTIONS="-l 172.16.1.21"   ---> 其它的参数
systemctl start memcached
第三个里程:利用nc或telnet进行memcache测试
telnet方式
[root@cache01 ~]# telnet 172.16.1.21 11211
Trying 172.16.1.21...
Connected to 172.16.1.21.
Escape character is '^]'.
set liu1 0 0 10   ----> 写入数据
oldboyssss     
STORED
get liu1          ----> 读取数据
VALUE liu1 0 10
oldboyssss
END
delete liu1       ----> 删除数据
DELETED
nc方式
#写入数据
[root@cache01 ~]# printf "set oldboy 0 0 10\r\noldboy1231\r\n"|nc 172.16.1.21 1121
1STORED
#读取数据
[root@cache01 ~]# printf "get oldboy\r\n"|nc 172.16.1.21 11211
VALUE oldboy 0 10
oldboy1231
END
#删除数据
[root@cache01 ~]# printf "delete oldboy\r\n"|nc 172.16.1.21 11211
DELETED

命令语法格式说明

set              key   0        0           10 \r\n oldboy0987 \r\n 
<command name>  <key> <flags> <exptime> <bytes>\r\n <data block>\r\n
- <flags> 是在取回内容时,与数据和发送块一同保存服务器上的任意16位无符号整型(用十进制来书写)。客户端可以用它作为“位域”来存储一些特定的信息;它对服务器是不透明的。
- <exptime> 是终止时间。如果为0,该项永不过期(虽然它可能被删除,以便为其他缓存项目腾出位置)。如果非0(Unix时间戳或当前时刻的秒偏移),到达终止时间后,客户端无法再获得这项内容。
- <bytes> 是随后的数据区块的字节长度,不包括用于分页的“\r\n”。它可以是0(这时后面跟随一个空的数据区块)。
<data block>\r\n
- <data block> 是大段的8位数据,其长度由前面的命令行中的<bytes>指定。

\n 换行且光标移至行首
\r 光标移至行首,但不换行
第四个里程:在web服务器上部署memcache客户端
下载地址:http://pecl.php.net/package/memcached
tar xf memcache-2.2.5.tgz
cd memcache-2.2.5
/application/php/bin/phpize
./configure --enable-memcache --with-php-config=/application/php/bin/php-config --with-zlib-dir
make
make install
第五个里程:修改php配置文件,在最后一行添加,并重启php服务
sed -i '$a extension=memcache.so' /application/php/lib/php.ini
pkill php    #killall php-fpm
/application/php/sbin/php-fpm -t
/application/php/sbin/php-fpm
/application/php/bin/php -m|grep memcache
第六个里程:添加代码,并在浏览器上进行访问
cat >/application/nginx/html/blog/mc.php<<'EOF'
<?php
    $memcache = new Memcache;
    $memcache->connect('10.0.0.21', 11211) or die ("Could not connect");
    $memcache->set('key_oldboy', 'hello,oldgirl');
    $get_value = $memcache->get('key_oldboy');
    echo $get_value;
?>
EOF
服务器上测试
[root@cache01 ~]# printf "get key20171117\r\n"|nc 10.0.0.21 11211
VALUE key20171117 0 11
hello,world
END

利用web界面管理memcached服务

官网地址:http://www.junopen.com/memadmin/ 
tar xf memadmin-1.0.12.tar.gz -C /application/nginx/html/blog/
浏览器访问http://blog.etiantian.org/memadmin



根据自己需求定义

利用Memcached缓存wordpress数据库

第一步:下面memcached缓存配置文件
wordpress缓存数据缓存到memcached中:https://cn.wordpress.org/plugins/memcached/
wordpress缓存数据缓存到redis中:https://cn.wordpress.org/plugins/redis-cache/ 
第二步:将下面好的配置文件放到wordprss下的wp-content中
unzip memcached.3.0.1.zip
cd memcached
mv object-cache.php /application/nginx/html/blog/wp-conten
t/
wordpress会自动检查wp-content下面是否有object-cache.php
使用memcached缓存wordpress博文数据
第三步:修改object-cache.php配置文件,将array('127.0.0.1','');为memcached服务器ip地址
[root@web01 wp-content]# grep -n "172" object-cache.php 
418:    $buckets =array('172.16.1.21:11211');

第四步:进行测试

Memcache session会话共享的实现

方法1:通过程序实现,web01只需要往memcahce写session,web02从memcahce读session,当作普通数据读写(更具有通用性)

方法2:通过php的配置文件,php默认将session存储在文件中,修改为存储在memcached中
sed -i 's#session.save_handler = files#session.save_handler = memcache#;$a session.save_path = "tcp://172.16.1.21:11211"' /application/php/lib/php.ini
使用这个功能,需要使用php的session函数

原文地址:https://www.cnblogs.com/yjiu1990/p/10668966.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失
在192.168.80.100要联网关闭防火墙及SElinuxsystemctlstopfirewalld//关闭防火墙setenforce0//关闭监控memcached服务器:上传源码包和插件包:yuminstalllrz*-y把memcached-1.5.6.tar.gzlibevent-2.1.8-stable.tar.gz软件包拉入
Redis与Memcache对比:1.Memcache是一个分布式的内存对象缓存系统而redis是可以实现持久存储2.Memcache是一个LRU的缓存redis支持更多的数据类型3.Memcache是多线程的redis是单线程的4.二者性能几乎不相上下,实际上redis会受到硬盘持久化的影响,但是性能仍然保持在与Memcache不相上下,
安装Mencache:关闭防火墙及SElinuxsystemctl  stop  firewalldsetenforce  0memcached服务器:上传源码包和插件包:yum install  lrz*  -ymemcached-1.5.9.tar.gzlibevent-2.1.8-stable.tar.gz解压tarxfmemcached-1.5.6.tar.gz-C/optarxflibevent-2.1.8-stabl
#安装php的yaf模块,参考https://www.cnblogs.com/shifu204/p/6743578.htmlhttps://www.cnblogs.com/jiqing9006/p/9646872.htmlCentOS用phpize安装PHP扩展出现Can'tfindPHPheadersin/usr/include/php原因:https://wangzq-phper.iteye.com/blog/2297792#php的memcache的
win10下安装配置apache、php、mysql、redis、memcache资源官网下载亲测可用。名称版本下载地址网盘提取码apache2.4.38-x64下载地址33h4mysql5.5.62下载地址zicrphp7.1.26-ts-x64下载地址6ar6redis4.0.2.3-x64下载地址bnpkmemcache1.4.
使用理由:就是为了频繁查询数据库。并且数据有多!那么存到memcached内存就能够避免数据库的不断被訪问,从而提速一、安装memcachememcached在windows7上的安装问题 如今安装包:http://download.csdn.net/detail/qq1355541448/7587663或者 http://www.jb51.net/softs/448
https://www.cnblogs.com/xrq730/p/4948707.htmlMemCache是什么理解memcached的内存存储机制SlabAllocator内存分配机制Memcached默认情况下采用了名为SlabAllocator的机制分配、管理内存。0.之前内存分配的弊端在该机制出现以前,内存的分配是通过对所有记录简单地进行malloc和
 转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10923221.html 一:Memcache是什么,为什么要用它 二:Memcache指令有哪些 三:Memcache使用实例 四:Memcache深入解读
memcache讲解和在.net中初使用2017年10月17日22:51:36 等待临界 阅读数:503  前言传统数据库面临的问题数据库死锁磁盘IO正文了解memcache原理基本命令memcache与memcachedmemcache的适用范围memcache的客户端和服务端memcache与redis异同
前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失
一、概念讲解1.memcache是一个高性能的分布式的内存对象缓存系统,用于动态web应用以减轻数据库负担2.memcache通过在内存里维护一个统一的巨大的hash表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率。3.memcache是一种内存缓存技术,是一种缓存手段,要看情况
前戏Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象减少读取数据库的次数,从而减小数据库的压力,提高动态,数据库网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程是用C编写的,但是客户端可以用任
一.配置环境1.安装jdk和tomcat并将其放至/usr/local目录下[root@server1~]#ls[root@server1~]#tarzxfjdk-7u79-linux-x64.tar.gz-C/usr/local[root@server1~]#tarzxfapache-tomcat-7.0.37.tar.gz-C/usr/local2.为了升级的时候只升级软链接,所以对jdk和tom
一、    缓存系统静态web页面:1、在静态Web程序中,客户端使用Web浏览器(IE、FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需要得到哪个页面,所有的请求交给Web服务器,之后WEB服务器根据用户的需要,从文件系统(存放了所有静态页面
session//php文件中ini_set("session.save_handler","memcache");ini_set("session.save_path","tcp://127.0.0.1:11211");session_start();$_SESSION['TEST']='AreyouOK?';echosession_id();不建议在php.
废话少说,直接上代码<?php//实例化memcache类$mem=newmemcache();//连接memcache$mem->connect('localhost','11211');/**判断缓存中是否有数据如果有,就读取,没有,在查询时候,就把查询的数据存入memcache中*///获取缓存数据$
一、概念1、什么是memcacheMemcached是一个自由开源的,高性能,分布式内存对象缓存系统Memcached是以LiveJournal旗下DangaInteractive公司的BradFitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要
关于Redis和Memcache在应用中,都可以实现缓存的功能,但是,具体使用情况需要根据具体业务场景,尤其是对缓存数据有特性要求时,需要选择对应的缓存机制。共同点:都是基于内存的数据库,可用作缓存机制区别:1、关于数据类型:Memcache只支持简单的Key/Value数据结构;Redis支持的数据结构相
ThedefaultcachegroupisloadedbasedontheCache::$defaultsetting.Itissettothefiledriverasstandard,howeverthiscanbechangedwithinthe/application/boostrap.phpfile//ChangethedefaultcachedrivertomemcacheCache::$default='me