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

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

内存: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. JavaSE之概述

    作此篇是鉴于个人Java学习之需要,也便于日后进一步归纳与复习.  规定:      1 Java全面概述[囊括 Java工作原理,JVM方面知识,关键字(final,static,public,pr ...

  2. Pytorch中的torch.cat()函数

    cat是concatnate的意思:拼接,联系在一起. 先说cat( )的普通用法 如果我们有两个tensor是A和B,想把他们拼接在一起,需要如下操作: C = torch.cat( (A,B),0 ...

  3. 【转】利用URLConnection来发送POST和GET请求

    URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和 URL 之间的通信链接.程序可以通过URLConnection实例向该URL发送请求.读取U ...

  4. 【CTF REVERSE】ctf02-查找字符串

    1.前言 公司大拿给写的一个CTF逆向程序,提升我们组内人员的水平. 基于对话框MFC框架开发,使用EDIT控制特性隐藏Flag,可借助spy4win之类窗体工具找出Flag. 程序加UPX壳,已对壳 ...

  5. Python 的 six模块简介

    Python 的 six模块简介 six : Six is a Python 2 and 3 compatibility library Six没有托管在Github上,而是托管在了Bitbucket ...

  6. python3 三元表达式,列表解析

    python3 三元表达式,列表解析 三元表达式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 x=2 y=3   if x > y ...

  7. JDK8 Lambda表达式对代码的简化

    只是举个例子: public class LambdaDemo { public static String findData( String name , LambdaInterface finde ...

  8. camera驱动框架分析(上)【转】

    转自:https://www.cnblogs.com/rongpmcu/p/7662738.html 前言 camera驱动框架涉及到的知识点比较多,特别是camera本身的接口就有很多,有些是直接连 ...

  9. System.Runtime.InteropServices.COMException (0x800A03EC): 无法访问文件

    使用Microsoft.Office.Interop.Excel 操作 今天在服务器部署,操作程序csv文件转xsl文件的时候,遇到一下问题: System.Runtime.InteropServic ...

  10. C#使用RabbitMQ

    1. 说明 在企业应用系统领域,会面对不同系统之间的通信.集成与整合,尤其当面临异构系统时,这种分布式的调用与通信变得越发重要.其次,系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地方, ...