Macache插件安装

一、 缓存数据库

关系型数据库 mysql oracle
非关系型数据库(NOsql)memcached reids MongoDB
机械硬盘是形而上学硬盘速度的10倍以上
Memcached是开源的、高质量的纯内部存款和储蓄器缓存服务软件。
缓存:将数据存储在内存中,独有当磁盘无法健康实现职业时,才会启用缓存。
优点:速度快
症结:断电数据错失(双电),用缓存存款和储蓄数据的指标只是为了敷衍大并发的作业,至于数目存款和储蓄及可信性会吐弃。
mysql:关系型数据库
最大特色:保险数据不丟失
缓存数据库:(非关系型数据库,品质异常高,然而不保险数据完整)====》业务数据提供者。
代表者:memache redis

1.1 缓存数据库使用景况

mysql:磁盘上的数据库,数据写入读取相对很慢
memcached:内部存款和储蓄器中的数据库,数据读写快,数据易错过。
数量存储,数据客栈,选取mysql数据库
高并发,业务大的采取选用memcache这种内部存款和储蓄器数据库
memcachedb 会将内部存款和储蓄器中的多寡写入到磁盘中
redis 首要专业情状也是所在内部存款和储蓄器中,可是定时备份到内部存款和储蓄器数据到磁盘
工作中,mysql+redis(memcached)搭配使用

上边是笔者画的探访流程图

客户第贰次访谈时响应流程

 

 

客户第二次访谈一样能源响应流程

 

 

 

 1.2 作为数据库的缓存

当数据库(mysql)承受不住大产出的呼吁时,能够将数据缓存到内部存储器中(缓存数据库),然后就足以消除了

1.3 session会话分享

场地:只要登陆了网址,以往访问这些网址任何页面都休想登陆了。
cookies 是一个文件,类似身份消息
网址开采
决断客商音信,最起头手艺方法:服务器在你的浏览器中写二个cookie,那些cookie富含了您的客户名
一贯将民用数据存款和储蓄在cookies不安全,所以要将个人数据存款和储蓄在服务端的文件,那几个文件正是session文件
浏览器Cookie:存储sessionid
服务器Session: session id 再次回到个人新闻(session值)
采纳情况:cookie+session
session贮存在磁盘的文件中,2台web同期提供访问,会产出session文件找不到时的情状
缓解方案:session分享
a. session文件通过NFS分享
b. session文件通过奥迪Q7Sync、SCP分享
c.
将session的剧情贮存在数据库(mysql)中,全体机器都足以由此ip:port读取
实惠:利用断电、重启错失数据的表征定期清理数据:提升并发

二、安装memached

Memcached
是叁个高性能的布满式内部存款和储蓄器对象缓存系统,用于动态Web应用以缓慢解决数据库负载。它经过在内部存款和储蓄器中缓存数据和目的来压缩读取数据库的次数,从而巩固动态、数据库驱动网址的快慢。Memcached基于七个存储键/值对的hashmap。其守护进度(daemon
)是用C写的,不过客商端能够用任何语言来编排,并由此memcached左券与护理进度通讯。

2.1 memcache不援助布满式集群

弥补方法:通过写程序落成布满式集群

正常的取余方法达成布满式:会招致大出血效应

2.2 安装memcached

1 [root@cache01 ~]# yum install -y memcached

 

 2.3 查看配置memcached文件

 

1 vim /etc/init.d/memcached
2 PORT=11211
3 #memcache默认端口为11211
4 USER=memcached
5 #默认用户
6 MAXCONN=1024
7 #最大连接数
8 CACHESIZE=64
9 #缓存大小64M

 

 

 

 2.4 启动memcache

 1 [root@cache01 init.d]# systemctl start memcached.service 
 2 [root@cache01 init.d]# systemctl status  memcached.service 
 3 ● memcached.service - Memcached
 4    Loaded: loaded (/usr/lib/systemd/system/memcached.service; disabled; vendor preset: disabled)
 5    Active: active (running) since Thu 2017-11-16 21:02:06 CST; 6s ago
 6  Main PID: 2841 (memcached)
 7    CGroup: /system.slice/memcached.service
 8            └─2841 /usr/bin/memcached -u memcached -p 11211 -m 64 -c 1024
 9 
10 Nov 16 21:02:06 cache01 systemd[1]: Started Memcached.
11 Nov 16 21:02:06 cache01 systemd[1]: Starting Memcached...

 

 

 

 

2.5 插入数据

前瞻试插入数据
请保持插入数据长度与数码长度一样,不然会冒出谬误如下图

 

 

上面说数据大太了,无法写入

 

 

1 [root@cache01 ~]# printf "set key008 0 0 6\r\n123456\r\n"
2 set key008 0 0 6
3 123456

 

 

 

 

set 设置键值对

key008 设置键名

0 flag 默许不变

0 不过期

10 字符长度

123456 插入的字符

诚然插入数据

1 [root@cache01 ~]# printf "set key008 0 0 6\r\n123456\r\n"|nc 127.0.0.1 11211
2 STORED

 

 

 

 获取数据

1 [root@cache01 ~]# printf "get key008\r\n"|nc 127.0.0.1 11211
2 VALUE key008 0 6
3 123456
4 END

 

 

 

 删除数据

1 [root@cache01 ~]# printf "delete key008\r\n"|nc 127.0.0.1 11211
2 DELETED

 

 

 

 

再度查看数据,开采已经未有了

1 [root@cache01 ~]# printf "get key008\r\n"|nc 127.0.0.1 11211
2 END

 

 

  2.6 服务端memcached监控

 

 1 [root@cache01 init.d]# printf "stats\r\n"|nc 127.0.0.1 11211
 2 STAT pid 2841
 3 STAT uptime 2012
 4 STAT time 1510839336
 5 ………
 6 STAT incr_hits 0
 7 STAT decr_misses 0
 8 STAT decr_hits 0 #命令中数 为0  这是两个最重要的选项
 9 STAT cas_misses 0 #丢失数  为0
10 ………
11 STAT cas_hits 0
12 STAT cas_badval 0
13 STAT touch_hits 0
14 STAT touch_misses 0
15 STAT auth_cmds 0
16 END
  1. 监控port或进程
  2. 能够上行下效客户先set后get,比对get内容是或不是set的。crond nagios zabbix
  3. 监察命令中率
  4. 监察响合时间及需要的事态

三、PHP的memcache客户端

 

1 tar xf memcache-2.2.7.tgz
2 cd memcache-2.2.7
3 /application/php/bin/phpize #扩展php需要的命令
4 ./configure --enable-memcache --with-php-config=/application/php/bin/php-config --with-zlib-dir
5 make && make install

 

 

 

 

1 下面生成memcache.so是客户端与服务端通信的

 

 

 

 3.1 添加php扩展

1 [root@web01 memcache-2.2.7]# sed -i.ori '$a\extension=memcache.so' /application/php/lib/php.ini
2 [root@web01 memcache-2.2.7]# tail -1 /application/php/lib/php.ini
3 extension=memcache.so

 

 

 

 

 1 [root@web01 memcache-2.2.7]# ps -ef | grep php-fpm
 2 root     53723     1  0 17:14 ?        00:00:01 php-fpm: master process (/application/php-5.5.32/etc/php-fpm.conf)
 3 nginx    53724 53723  0 17:14 ?        00:00:07 php-fpm: pool www
 4 nginx    53725 53723  0 17:14 ?        00:00:06 php-fpm: pool www
 5 nginx    54358 53723  0 18:30 ?        00:00:06 php-fpm: pool www
 6 root     57977  1747  0 22:07 pts/2    00:00:00 grep --color=auto php-fpm
 7 [root@web01 memcache-2.2.7]# kill 53723
 8 [root@web01 memcache-2.2.7]# kill 53723
 9 -bash: kill: (53723) - No such process
10 [root@web01 memcache-2.2.7]# /application/php/sbin/php-fpm -t
11 [16-Nov-2017 22:07:48] NOTICE: configuration file /application/php-5.5.32/etc/php-fpm.conf test is successful
12 
13 [root@web01 memcache-2.2.7]# /application/php/sbin/php-fpm 
14 [root@web01 memcache-2.2.7]# /application/php/bin/php -m | grep memcache
15 memcache

 

 

 3.2 测试php

1 <?php
2 $memcache= new Memcache;
3 $memcache->connect('10.0.0.21',11211) or die ( "could not cnnect");
4 $memcache->set('1','3306');
5 $get_value=$memcache->get('1');
6 echo $get_value;
7 ?>

 

下面为显示结果

显示内容,测试成功

 

 3.3 memcache web分界面管理工科具

下载memcacheweb分界面管理工科具

 下载地址

 

 上面为memadmin管理工科具的应用

 

 

 

 

 

3.4 session共享

 

     
 方法1:通进度序达成,web01只供给往memcahce写session,web02从memcahce读session(更享有通用性)

      

      
方法2:通过php的布局文件,让php暗中认可将session存款和储蓄在文件中,修改为存款和储蓄在memcached中

亟需运营和付出协同

       运转:图谋条件

       开发:用环境

1 sed -i 's#session.save_handler = files#session.save_handler = memache#;$a session.save_path = "tcp://10.0.0.21:11211"' /application/php/lib/php.ini
2 kill php
3 [root@web01 memcache-2.2.7]# /application/php/sbin/php-fpm -t
4 [16-Nov-2017 22:07:48] NOTICE: configuration file /application/php-5.5.32/etc/php-fpm.conf test is successful
5 
6 [root@web01 memcache-2.2.7]# /application/php/sbin/php-fpm 

 

假使集群中有负载均衡,能够透过wireshark 查看ip,登入后,查看验证结果。

 

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注