zoukankan      html  css  js  c++  java
  • Memcached

    u Memcached的基本概念(初步认识)

    是一种缓存技术(内存), 你可以把它想象成一张巨大的内存表:形式[他就是一个服务]

    key                    val 

    key(字符串)         可以放(字符串【二进制数据[视频、音频、图片],数值,数组,对象,)

     

    从访问速度 Mysql 表 heap 

    内存>文件>数据库

     

     

     

    一个实际的问题分析:

     

     

    待讲的实际运用案例!

     

     

     

    设计思想?-> 解决方案

     

     

     

    快速入门

    u 安装我们的memcache服务

    步骤

    1. 下载

    2. 安装

     

    卸载 memcached.exe –d uninstall   (-d  daemon 后台程序)

    停止服务 memcahced.exe –d stop 

    安装 memcached –d install 

     

    3. 测试是否安装成功

    启动 

    memcached –d start 

    我们使用 

    netstat –an   看看是否有 11211 端口在监听,如果在监听,则说明成.

    netstat –anb  (b 可以显示 是哪个程序在监听这个端口.)

    如果现在,我要杀掉这个程序 ,windows 下  可以使用任务管理器杀死.

    linux  kill -9 进程号         killall 进程名 

     

    大部分同学安装Ok, 只有是xpok,

    win7 的同学有一部分没有ok

    a. 把 memcached.exe 放在 中文目录 这样不行

    b. 安装使用的是 普通用户, 你要切换成 administror   ctrl+alt+delete

     

     

    如何操作我们的memcached 服务.

     

     

    telnet 的具体使用

     

    a. 登录到telnet 

    语法 

    telnet ip 端口 

     

    登录到  11211 端口 

    telnet 127.0.0.1 11211 

     

    如何对mem进行 curd 操作

     

    添加

    add key1  0  60  5

     

    说明  key1 表示 键值 ,可以自己指定

    0 表示一个格式, 不变

    60 存放在mem多长时间

    5 表示存放的数据是多少个字节

     

    查询

    get 键值

    举例

    get hsp1 

    说明如果 hsp1 不存在,或是是因为时间到而被 memcache 删除了,将得到空.

     

    修改

    有两种方法

     

    replace 键值  时间 大小  【这里有一个注意事项,该键值必须存在】

    举例:

    replace hsp1 0 40 8

     

    第二种方法:

    set 键值 时间 大小 【如果这个键存在,则替换,如果不存在,则表示添加一个新的键值】

     

    案例

    set hsp1 0 60 5 

     

    删除 

     

    语法

    delete 键值

    现在,如果我们在mem服务中,需要做一个计数器(存放值一定是一个数),怎么办?

     

    key          val

    counter        0

    add counter 0 0 100

    incr key 数字

     

    telnet使用ok!

     

    u 如何使用memcache 的扩展来 操作我们的memcached  服务 

    (1) 把 php_memcache.dll  拷贝 ~php/ext/目录

    (2) 在 php.ini 中添加一句话

    ;引入php_memcache.dll

    extension=php_memcache.dll

    (3) 使用 PHP 程序 curd

    <?php

     

    //创建对象

    $mem=new Memcache;

    //连接到mem服务器

    $mem->connect("127.0.0.1",11211);

    //添加,该函数返回true

     

    if($mem->add("hsp1","china",MEMCACHE_COMPRESSED,60)){

     

    echo "添加ok";

    }else{

    echo "添加err";

    }

     

    //查询

     

    $val=$mem->get("hsp1");

    echo "val=$val";

    echo "<br/>";

    //修改 replace  set

    if($mem->replace("hsp1","hello,world",MEMCACHE_COMPRESSED,60)){

    echo "replace ok";

    }else{

    echo "replace 失败";

    }

    echo "<br/>";

    //set 如果存在就替换,不存在,就添加

    if($mem->set("hsp1","hello,world , 你好!",MEMCACHE_COMPRESSED,60)){

    echo "set ok";

    }else{

    echo "set 失败";

    }

     

    echo "<br/>";

    //删除

    if($mem->delete("hsp1")){

    echo "删除ok";

     

    }

     

    (4) 谈谈细节,加强

    讨论memcache中什么数据类型可以放入字符串 ,数字 ,数组对象 ,资源

     

     

    当我们在mem中存取对象是,在取的时候,我们需要在前面引入这个类的声明.

     

    把这个代码:

    <?php

     

    //放入数组

    $arr=array("1"=>"beijing","2"=>"天津");

    //数组默认是序列号 

    if($mem->add("city2",json_encode($arr),MEMCACHE_COMPRESSED,60)){

    echo "city ok";

    }else{

    echo "city fail";

    }

     

     

    //对象

    class Dog{

    public $age;

    public $color;

    public function __construct($age,$color){

    $this->age=$age;

    $this->color=$color;

    }

    }

     

    $dog1=new Dog(30,"红色");

     

    if($mem->add("dog1",$dog1,MEMCACHE_COMPRESSED,60)){

    echo "dog1 ok";

    }else{

    echo "dog1 fail";

    }

    echo "<br/>";

    $mydog=$mem->get("dog1");

    echo $mydog->age;

    var_dump($mydog);

     

    $con=mysql_connect("localhost","root","root");

    echo "<br/>";

    if($con){

    //放入mem

    if($mem->add("conn",$con,MEMCACHE_COMPRESSED,160)){

    echo "资源添加ok";

     

    }else{

    echo "资源添加失败";

    }

    }

     

    (5) 

     

     

     

     

     

  • 相关阅读:
    FAT学习笔记(五)——FAQ
    FAT32学习笔记(五)——fat相关工具
    FAT学习笔记(四)——Dir Entry
    FAT学习笔记(三)--FSInfo
    zabbix介绍
    配置pxe 自动化安装centos6.7
    跳转方式用name方法的话,浏览器返回按钮点击返回时会有BUG
    FormData使用方法详解
    vue中的@click.native
    vue从后台获取数据,并导出EXCEL文件
  • 原文地址:https://www.cnblogs.com/suihui/p/3238108.html
Copyright © 2011-2022 走看看