网站的瓶颈 主要集中在数据库 ,用缓存(直接操作内存)

存储计算机的内存,如果一旦服务器断电,数据都将清空

内存:memcached redis
基于文档:mongodb

memcache:基于内存的高性能的分布式的内存管理系统(C语言,PHP的一个扩展)
键值对的存储

使用memcache的客户端:PHP

1.安装memcache的服务器端 cmd
1.1 进入到memcached.exe的目录
1.2 memcached.exe -d install 安装
1.3 memcached.exe -d start 启动

memcached.exe -d stop:关闭
memcached.exe -d uninstall:卸载

netstat:显示协议统计和当前 TCP/IP 网络连接。
netstat -a 显示所有连接和侦听端口。 memcache默认的端口号为11211

2.客户端连接memcache(telnet localhost 11211)
stats:查看memcache运行状态信息
set 键 标识符 有效期 长度(只能存储字符串)
set name 1 0(永久) 10(存储的值必须是10个长度)
zhangsan
get 键
delete 键
flush_all :清空所有数据
stats cachedump 1 0:打印所有的数据

3.PHP连接memcache
1.将php_memcache.dll放在php目录下的ext目录下
2.在php.ini配置文件中, 确保安装PHP与memcache的扩展 extension = php_memcache.dll
3.重启apache,确认memcache扩展成功安装

memcache::addServer('localhost',11211)
memcache::set(key,value,MEMCACHE_COMPRESSED,有效期)
memcache::get(key)
memcache::delete(key)
memcache::flush():

高级session
baidu.com
tieba.baidu.com
music.baidu.com
sex.baidu.com

// 必须确保能够连接成功
session.save_handler = memcache
session.save_path = 'tcp://192.168.129.30:11211'

<?php 

// 1.实例化Memcache类    memcache
$mem = new Memcache; // 2.配置memcache
$mem->addServer('localhost',11211); // 3.向内存中添加数据(四种标量,数组,对象,是将这些数据类型转化为字符串进行存储)
$mem->set('username','zhangsan');
$mem->set('age',20);
$mem->set('price',20.99);
$mem->set('bool',true); $mem->set('info',['username'=>'lisi','age'=>20,'sex'=>'男']); class Person
{
public $name = 'wangwu';
public $age = 20;
public $sex = 1;
}
$mem->set('person',new Person); // set(键,值,指定压缩,设置有效期)
$mem->set('weight','100KG',MEMCACHE_COMPRESSED,10);
<?php
// 1.先实例化memcache
$mem = new Memcache;
$mem->addServer('localhost',11211); // 2.判断内存中存在对应的数据信息 // 将sql语句单独提取并加密取6位出来作为存入数据的键值
$sql = 'select * from demo_user';
$key = substr(md5($sql),0,6);
echo $key;
$data = $mem->get($key); if ($data) {
echo 'memcache服务器中有对应的数据信息';
} else {
/*
一个小时改变一次内容,将此内容缓存一个小时 在一个小时内,从计算机的缓存中读取数据,
如果过期,从数据库读取,同时向缓存中再存入一份数据,在保存10s中
*/
try
{
$pdo = new PDO('mysql:host=localhost;dbname=lamp129;charset=utf8','root','');
} catch (PDOException $p) {
echo $p->getMessage();
} $stmt = $pdo->query($sql);
$data = $stmt->fetchAll(PDO::FETCH_ASSOC); // 将查询到的数据向memcache中写入
$mem->set($key,$data,MEMCACHE_COMPRESSED,100); echo '这是从数据库读取到的信息';
}
<?php 

// 分布式缓存
$mem = new Memcache; // 连接多台memcache服务器
$mem->addServer('localhost',11211);
$mem->addServer('192.168.129.67',11211);
$mem->addServer('192.168.129.32',11211); for ($i=0;$i<100;$i++) {
$mem->set("user{$i}",'zhangsan');
} var_dump($mem->get('user10'));

当网站越来越大存储用户或者订单等session信息分布在不同的服务器上怎么办?www.tieba.baidu.com   www.music.baidu.com  www.baidu.com

session跨域共享问题:将上述的服务器都装上memcache可以用将session数据存入memcache而不存入文件了

找到php.ini

session_save_handler=files   默认

改为session_save_handler=memcache

session.save_path='c:\xampp\tmp'

改为 session.save_path='tcp://localhost:11211'

memcahe的更多相关文章

  1. 浅谈MemCahe

    MemCahe 首先介绍下memcahce的定义:是一个分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的.需要频繁访问数据库的网站访问速度提升效果十分显著. 接下来介绍 ...

  2. Memcahe安装与配置

    1.先启动Memcahe服务 (1)通过Memcahe文件夹下的memcahe.exe程序启动 (2)将Memcahe加到Windows服务中去 为了方便使用,大多数情况下,是使用第二种方式,来启动M ...

  3. 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器

    1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...

  4. redis -memcahe

    tomcat自动化集成 https://blog.51cto.com/ellenv/1932817 Redis与Memcache对比:1.Memcache是一个分布式的内存对象缓存系统而redis是可 ...

  5. nginx连接操作memcahe

    nginx配置连接操作memcache nginx配置连接memcache: location / { set $memcached_key "$uri"; #设置memcache ...

  6. thinkphp3.2 中 Memcache 的配置和使用(memcahe的使用场景)

    Thinkphp的默认缓存方式是以File方式,在/Runtime/Temp 下生成了好多缓存文件. TIPS: TP3.2支持的缓存方式有:数据缓存类型,支持:File|Db|Apc|Memcach ...

  7. [Java]Java日期及时间库插件 -- Joda Time.

    来到新公司工作也有一个多月了, 陆陆续续做了一些简单的项目. 今天做一个新东西的时候发现了 Joda Time的这个东西, 因为以前用的都是JDK原生的时间处理API, 大家都知道Java原生的时间处 ...

  8. php 设计模式

    一.工厂模式 1.创建接口类,规范方法,要实现这个接口的类必须实现这个接口的所有方法,接口的方法默认是抽象的,所以不再方法前面加 abstract interface people{ public f ...

  9. GO语言学习

    1. 语言特色 可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了. 静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多 ...

随机推荐

  1. [HEOI2015]定价 (贪心)

    分类讨论大法好! \(solution:\) 先说一下我对这个题目的态度: 首先这一题是贪心,这个十分明显,看了一眼其他题解都是十分优秀的贪心,可是大家都没有想过吗:你们贪心都是在区间\([l,r]\ ...

  2. Caffe源码阅读(1) 全连接层

    Caffe源码阅读(1) 全连接层 发表于 2014-09-15   |   今天看全连接层的实现.主要看的是https://github.com/BVLC/caffe/blob/master/src ...

  3. Ubuntu/Debian 8 安装 Intel realsense 摄像头驱动

    ## Make Ubuntu/Debian Up-to-date1. sudo apt-get update && sudo apt-get upgrade && su ...

  4. Spring使用RMI进行远程方法调用

    (1).我新建了三个项目,SpringRmiApi(存放提供者和消费者共有的xx,例如实体类以及服务接口等等).SpringRmiService(服务提供者).SpringRmiProvider(服务 ...

  5. 【黑客免杀攻防】读书笔记7 - 软件逆向工程基础1(函数调用约定、Main函数查找)

    0x1 准备工作 1.1.准备工具 IDA:交互式反汇编工具 OllyDbg:用户层调试工具 Visual Studio:微软开发工具 1.2.基础知识 C++开发 汇编语言 0x2 查找真正的mai ...

  6. centos7下配置saltstack

    1.下载 使用yum方式即可,可以更换下yum源,这里使用的阿里云的 [root@salt-master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo h ...

  7. 在docker中部署centos7镜像

    本篇文章参考自: https://www.cnblogs.com/linjj/p/5606911.html https://blog.csdn.net/u012767761/article/detai ...

  8. mysql忘记root密码的处理方式

    1.停用mysql服务 service mysqld stop 2.修改my.cnf    利用vim命令打开mysql配置文件my.cnf 添加skip-grant-tables,添加完成后,执行w ...

  9. CentOS6.5环境使用keepalived实现nginx服务的高可用性及配置详解

    keepalived基础概念    Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障.一个WEB服务至少会有2台服务器运行Keepalived,一台为主 ...

  10. PL/SQL第五章 Order by排序

    -- 排序 -- 1.列明排序 -- 2.别名排序 -- 3.列位置排序(当使用union,union all,intersect,minus集合操作,列明不同,但希望排序) SELECT deptn ...