1.缓存数据库

缓存:将数据存储在内存中,只有当磁盘胜任不了的时候,才会启用缓存。
缺点:断电数据丢失(双电),用缓存存储数据的目的只是为了应付大并发的业务,至于数据存储及可靠性不要找他了。
数据库:mysql(关系型数据库,能够保证数据一致性,保证数据不丢失,但是因为功能太多,导致性能不高)====》数据仓库
缓存数据库: memcache、redis(非关系型数据库,性能极高,但是不保证数据完整)===》业务的数据提供者

2. 缓存数据库使用场景

2.1 作为数据库的缓存

当数据库(mysql)承受不了大并发的请求时,可以将数据缓存到内存中(缓存数据库),然后就可以解决。

2.2 会话共享

场景:只要登录了网站,以后访问这个网站任何页面都不要登录了。
为什么服务器知道你是谁?

3. 安装使用memcache

3.1 Memcached简介

Memcached是一款开源的、高性能的纯内存缓存服务软件。Mem是内存的意思,cache是缓存的意思,d是daemon的意思。
Memcache是项目的名字,诞生于2003年。Memcache服务分为客户端和服务端两部分,C/S架构。
-客户端软件memcache-2.25.tar.gz
-服务端软件memcached-1.4.13.tar.gz
http://www.cnblogs.com/Csir/p/6711305.html

3.2 Memcached原理及优点

在启动Memcached时,根据指定的内存大小参数,会被分配一个内存空间。当我们读取数据库的各类业务数据后,数据会同时放入Memcached缓存中,当下一次用户请求同样的数据,程序直接去Memcached取数据返回给用户。
优点:
①对于用户来讲,用户访问网站更快了,体验更好了。
②对网站来说,数据库压力降低了。只有当内存没有数据时才会去请求数据库。第一次写入的数据也会请求数据库。一般公司没有预热,只有当用户读取过数据库才会放到Memcached中。
③提升了网站的并发访问,减少服务器数量。
企业案例:当机房断电,如何开启web服务器、memcached缓存服务器、数据库服务器的?
开机顺序:先开启数据库,再开启缓存,然后预热缓存数据库,最后开启web服务器。如果不预热缓存数据库,当开启web后大量的访问流入MySQL,造成的结果是MySQL启动不了,一开就挂。
如何正确关闭网站集群服务器?从前端往后端依次关闭。
如何正确开启网站集群服务器?从后端依次往前端开启,缓存服务器要预热。

3.4 安装memcached

yum -y install memcached

3.5 启动memcached

[root@Memcached ~]# memcached -h
-p <num> 指定监听端口 TCP port number to listen on (default: 11211)
-l <addr> 绑定监听的网卡 interface to listen on (default: INADDR_ANY, all addresses) 
-d run as a daemon # 后台运行
-u <username> assume identity of <username> (only when run as root) #指定用户
-m <num> 分配内存大小 max memory to use for items in megabytes (default: 64 MB)
-c <num> max simultaneous connections (default: 1024) #并发访问连接数
-P <file> 指定pid文件存放路径save PID in <file>, only used with -d option
/etc/init.d/memcached start

3.6 使用

向Memcached添加数据:键值对
key1-->values1
key2-->values2
# 写入数据
[root@web01 ~]# printf "set key008 0 0 10\r\noldboy0987\r\n"|nc 127.0.0.1 11211
STORED
# 查询数据
[root@web01 ~]# printf "get key008\r\n"|nc 127.0.0.1 11211
VALUE key008 0 10
oldboy0987
END
# 删除数据
[root@web01 ~]# printf "delete key008\r\n"|nc 127.0.0.1 11211
DELETED
[root@web01 ~]# printf "get key008\r\n"|nc 127.0.0.1 11211
END

3.7 服务端memcached监控

printf "stats\r\n"|nc 127.0.0.1 11211
①监听port或进程
②可以模拟用户先set后get,比对get内容是不是set的。crond nagios zabbix
③监控命中百分比
④监控响应时间及需要的状态

4. PHP的memcache客户端

4.1 安装

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
sed -i.ori '$a extension=memcache.so' /application/php/lib/php.ini
pkill php
/application/php/sbin/php-fpm -t
/application/php/sbin/php-fpm
/application/php/bin/php -m|grep memcache

4.2 生成测试页面

cat >>/application/nginx/html/blog/mc.php<<'EOF'
<?php
$memcache = new Memcache;
$memcache->connect('172.16.1.41', 11211) or die ("Could not connect");
$memcache->set('key20171017', 'oldboy0326');
$get_value = $memcache->get('key20171017');
echo $get_value;
?>
EOF
[root@web01 ~]# curl -H Host:blog.lewen.com 10.0.0.8/mc.php 
oldboy0326
[root@web01 conf]# curl 10.0.0.8/mc.php
oldboy0326
应用 :session共享
需要运维+开发协同
运维:准备环境
开发:用环境
sed -i 's#session.save_handler = files#session.save_handler = memcache#;$a session.save_path = "tcp://172.16.1.41:11211"' /application/php/lib/php.ini
pkill php
/application/php/sbin/php-fpm -t
/application/php/sbin/php-fpm
总结:
1.服务端、客户端安装,管理工具的使用
2.session共享配置
3.memcached 作为缓存工作过程

第34 memcached缓存相关推荐

  1. 利用Spring AOP 更新memcached 缓存策略的实现(一)

    本人参考文档:http://blog.csdn.net/ajun_studio/article/details/7343781 memcached批量删除解决方案:http://tech.ddvip. ...

  2. memcached 缓存服务器

    Memcached 缓存服务器 Memcached 是高性能的分布式内存缓存服务器. 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态web应用的速度.提高可扩展性. 主要特点 ...

  3. 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)

    Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...

  4. Memcached缓存实例

    1.引用dll:Enyim.MemCaching.dll(网上可以下载到) 2.配置web.config: 3.创建Memcached缓存类MemCacheHelper 4.调用: 转载于:https ...

  5. redis和memcached缓存

    memcached memcache开源的,高性能,高并发分布式内存缓存系统,天生支持集群 memcached下载地址: http://memcached.org/downloads python实现 ...

  6. 安装telnet_Flask干货:Memcached缓存系统——Memcached的安装

    图 | 源网络文 | 5号程序员 Memcached缓存系统是目前使用最广泛的高性能分布式内存缓存系统,是一个自由开源的高性能分布式内存对象缓存系统. 国内外众多大型互联网应用都选择Memcached ...

  7. Nginx+tomcat+memcached缓存共享session

    Nginx+tomcat+memcached缓存共享session session 的序列化方案官方推荐的有 4 种: 1. java serialization 2. msm-kryo-serial ...

  8. 宝塔无法安装php memcached,宝塔面板安装Memcached缓存加速wordpress

    开启缓存是为了加速wordpress经常用到的一种提速方法,除了有专门的插件进行静态化缓存外,还可以使用Memcached进行内存缓存,宝塔面板集成了Memcached,大大降低了使用难度.今天就记录 ...

  9. C#操作Memcached缓存

    Memcached缓存 的安装和简单操作(add / get / remove)可以先看看这个网站 https://www.runoob.com/memcached/window-install-me ...

最新文章

  1. Redis01_初识安装
  2. 【渝粤教育】电大中专药事管理与法规作业 题库
  3. [Vulhub](WooYun-2016-199433)phpmyadmin反序列化漏洞
  4. UNIX(多线程):21---线程池实现原理
  5. 作为后端开发如何设计数据库系列文章 设计SaaS系统表结构
  6. 暖通专业标准规范大全_完美!暖通空调专业工程量计算知识大全
  7. Gradient-Based Learning Applied to Document Recognition 部分阅读
  8. java语音jvm_java环境中基于jvm的两大语言:scala,groovy
  9. pycharm python3.7环境_Python3+Pycharm+PyQt5环境搭建步骤图文详解
  10. Windows系统过滤病毒功能吗
  11. PB数据窗口自动换下一页
  12. echarts5.0 动态柱状图 不用调接口 不用jQuery舒适应用
  13. 锋利的jQuery总结(三)
  14. 计算机应用基础 项目4-5 分析商品销售业绩 ppt课件,计算机应用基础课件项目四汇总.ppt...
  15. 算法笔记 —— 汉诺塔详解
  16. 今日头条用户搜索“室内设计”显示的自媒体粉丝数量及分布情况统计(2020.1.8)
  17. [附源码]java毕业设计高校奖学金评定管理系统
  18. 官宣:CSDN发放福利!免费使用自定义域名功能一个月!
  19. 是国际体育活动助长全球不快乐
  20. 组织能力建设的三部曲

热门文章

  1. 华为手机拍照后图库里无照片_EMUI的相册不这么用,还用什么智能手机?
  2. 风控建模 python 知乎_风控建模基本要求及面试问题小结
  3. python 将实例用作属性_将类实例用作类属性、描述符和属性
  4. 如何保存一个函数_如何表达一个“分段函数”之学习Matlab Function模块
  5. 从零开始学习docker(二)网络
  6. 韩国最新「美女元宇宙」引爆Reddit!最强换脸神器美女自拍一键转漫画
  7. Pandas profiling 生成报告并部署的一站式解决方案
  8. 入门Pandas不可不知的技巧
  9. 一款在线工具,克服Python、Java等7种语言编程障碍
  10. Python | raise...from... 是个什么操作?