• memcached安装与使用详解


    一、memcache的简介

      memcache是高速,分布式的内存缓存服务器

      php的缓存方式一般可以使用memcache技术和redis技术,其中各有优劣,因不同的情况而选择较为适合的缓存技术,其中memcache是缓存系统,而redis是数据库系统,memcache相对于redis的优点是高速,但是速度的差异性很难看出区分。但是memcache的安装,使用等都较为简单,当然redis的逼格当然相对高点

    二、memcache的安装

      二进制程序,基于命令行的程序

      (1)直接双击memcached.exe

        

      (2)cmd执行,将memcache加入服务管理

       

      

      

      安装时加上-d 参数即可

      使用-h参数可以查看其全部参数含义

      

      其中重要选项

      -p 监听端口 默认11211  -l监听的IP    -m memcache的最大容量 以M为单位 默认64M

     到此安装服务器端完毕

    三、memcache的使用

    (1)使用SecureCRT作为客户端,对memcache进行操作,发出是以Telnet协议的方式,进行远程连接的

      设置:set

      规则:set 键名 压缩标志 生命周期 值的长度

         值

      注释:压缩标志:1表示压缩 0表示不压缩,压缩解缩会消耗时间,但是会节省空间,根据需求而定

         生命周期:可以是时间间隔,也可以是时间戳,其是以30*3600*24=2592000(30天的时间)

      ·    小于等于视为时间间隔,大于为时间戳

         值的长度:以字节为单位

          

      获取get

      规则 get 键名

      

      其他设置

       incr 键名 数值  自增多少

        decr 键名 数值  自减多少

         add :用法与set相同 如key存在则添加失败

      replace:用法与set相同 如key存在则替换失败  

      delete:删除某个键值

      flushall:清空所有

    (2)使用php进行操作

      配置

      1、把相对应的php版本的php_memcache.dll拷贝到php的扩展文件夹

      2、配置:在php.ini开启php_memcache.dll的扩展

      使用

      可以使用OOP语法管理memcached服务器

      1、创建memcache实例

        $memcache=new Memcache();
        $host='localhost';
        $port='11211';
        $res=$memcache->connect($host,$port);
        //对memcache的数据进行操作
        $memcache->close();

      2、数据类型的支持

       把标量类型转化成字符串类型进行处理

       非标量的数据类型转成json数据进行处理

      3、分布式

      memcache可以添加对台memcache服务器到集群里,由php_memcache的扩展进行分布式算法处理,选择一台memcache服务器进行存储

      

        $memcache=Memcache();
        //添加服务器到集群
        $host='192.168.10.110';
        $port='11211';
        $memcache->addServer($host,$port);
        $host='127.0.0.1';
        $port='11212';
        $memcache->addServer($host,$port);
        //memcache操作
        $memcache->close();//关闭memcache

      4、缓存失效

        缓存过期:memcache在处理过期缓存的时,采用的时懒惰模式的处理方法,即是缓存过期不会立即去处理而是等待服务器去获取的时候,判断是否过期,然后再去删除

        缓存空间已满:memcache在插入数据时,若空间不足时,采用删除旧缓存中删除最少用的缓存项的策略,而不是看缓存是否过期,此策略叫RLU策略

      5、常用场景

        1、session进memcache

          首先要先定义memcache,session的处理器

        

        ini_set('session.save_handler', 'memcache');
        //定义memcache服务器信息
        ini_set('session.save_path', "tcp://127.0.0.1:11211");
        session_start();
        //session操作

    欢迎关注技术公众号,博客和公众号同步更新,将不断更新各种技术心得


    作者: 苏沛云
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    RabbitMq的死信队列和延迟队列
    Rabbitmq的过期时间
    技术干货 | 源码解析 Github 上 14.1k Star 的 RocketMQ
    深入分析 Flutter 渲染性能
    重磅发布 阿里云数据中台全新产品DataTrust聚焦企业数据安全保障
    DataWorks搬站方案:Airflow作业迁移至DataWorks
    DataWorks搬站方案:Azkaban作业迁移至DataWorks
    基于 Flutter 的 Web 渲染引擎「北海」正式开源!
    走完线上 BUG 定位最后一公里
    10种编程语言实现Y组合子
  • 原文地址:https://www.cnblogs.com/spydxk/p/7429030.html
Copyright © 2020-2023  润新知