zoukankan      html  css  js  c++  java
  • memcache

    内存缓存之memcache

    1、memcache介绍

    memory cache  内存 缓存

    Memcached 是国外 社区 网站 LiveJournal  的开发团队开发的 高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态 Web 应用的速度、提高可扩展性。

    2、安装软件

    windows下安装

    2.1、直接前端运行

    ①把软件及其依赖文件放置到一个运行目录

    这种方式使用,当cmd窗口关闭,就会把软件同时关闭,不方便操作使用

    2.2、后台服务运行

    通过建立windows服务的方式,解决软件后台运行的操作

    服务管理操作属于高级权限,需要使超级管理员cmd进行操作

    ①打开管理员cmd

    ②查看相关参数帮助,及其安装服务

    -p  监听的端口号

    -l 监听的地址 确认哪些ip地址可以连接

    -d start 启动memcahed服务

    -d install 安装memcached服务

    -d uninstall 卸载memcache服务

    查看服务并启动memcached

    Tip:如果不使用可以选择删除服务

    注意服务要是先关闭的

    ③卸载服务

     

    windows下安装是为了之后能够在windows开发使用

    linux下安装

    ①把软件包上传到linux服务器

    通过sftp工具上传即可。

    确定软件上传成功

    ②安装libevent

    memcached依赖libevent

    先安装libevent

    shell > tar zxvf libevent-2.1.8-stable.tar.gz

    shell > cd libevent-2.1.8-stable

    shell > ./configure --prefix=/usr/local/libevent && make && make install

    查看一下libevent是否安装成功

    ③安装memcached

    shell > tar zxvf memcached-1.5.1.tar.gz

    shell > cd memcached-1.5.1

    shell >./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent

    shell > make && make install

    查看安装目录,是否可以启动

    shell > /usr/local/memcached/bin/memcached -u root -d

    3、命令行客户端操作

    telnet 之前的远程连接协议 memcache可以通过此协议进行连接操作

    连接一个服务:ip地址+port端口号

    ①windows的telnet客户端

    cmd > telnet 192.168.127.112 11211

    以上问题,可能是防火墙的问题,临时关闭防火墙测试

    ②简单命令操作使用

    set  key名称  是否压缩  是否过期   长度

    现在一般不进行压缩了,压缩和解压缩需要耗费一定时间

    get  key名称

    delete key 删除key

    flush_all 清空所有key

    只要是支持telnet协议的工具都可以通过telnet协议连接memcached

    三、php操作memcache

    1、开启拓展

    获取拓展文件,并安装开启拓展,开启拓展之后php就拥有了一个可以操作memcached的类。

    之后需要使用拓展文件,都到以下网址找:

    http://pecl.php.net/

    memcache的两个php拓展

    memcache

    memcached

    ①根据php的实际参数选择拓展

    php版本号  软件位数  运行方式(ts nts)   运行平台(vc6 vc9 vc11 vc14 vc15)

    ②把对应的拓展文件放入php的ext拓展目录

    ③开启php.ini配置,重启服务,查看phpinfo

    可以自行添加一句

    使用方式可以参考php手册

    注意在使用php操作memcache:

    ①php的拓展是安装好的

    ②memcache的服务器端是启动

    2、记录格式

    key=>value的格式

    value的值大小默认1M

    key的要求,简洁明了,能够直观描述出value存储的是什么。

    3、有效期

    memcache有两种设置有效期的方式

    ①时间差的方式  多少s之后过期   超过30天的时间差将被认为是一个时间戳

    $mem->set('classname','ithm5',0,时间差);

    时间戳的方式  在哪个时间戳点过期

    设置超过30天的时间点,需要通过时间戳的方式设置

    $mem->set('classname','ithm5',0,时间差(time()+时间差));

    key过期之后,返回的值为bool(false)

    4、存储各种数据类型

    数据保存的最低标准要求,要保持数据的完整性和一致性。

    标量类型  string(字符串) int(整型) float(浮点型) bool(布尔型)

    ②复合类型  array(数组)  object(对象)

    序列化操作,是为了方便存储复合型数据

    ③特殊类型  resoure(资源)  NULL(空)

    以上所有操作,发现只有资源类型不能够通过memcache操作使用,其他都可以正常使用

    5、其他相关操作方法

    $mem->delete(键 [, int $timeout ]);      

    删除指定键的信息,(指定$timeout,则$timeout秒后删除)

    $mem->flush();

    删除全部键

    $mem->add(key, value, 是否压缩, 有效期)

    仅添加:Key存在则失败,KEY不存在添加

    $mem->replace(Key, Value, 是否压缩, 有效期)

    仅替换(修改):Key存在则修改,KEY不存在失败。

    以下可以用来做计算器操作

    $mem -> decrement(key,num=1)

    按照num的幅度,对key的值进行减少操作

    $mem -> increment(key,num=1)

    按照num的幅度,对key的值进行增加操作

    6、php监控操作memcache的客户端

    以上两个软件,都需要在安装好php的memcache拓展的前提下才可以使用

    1>memcache.php

    2>memadmin

    四、memcache的应用拓展

    1、失效机制(了解)

    懒惰机制  key过期之后不会立即删除,等到获取时(get)再去删除信息

    php gc垃圾回收机制 懒惰模式的

    ②LRU机制  Least Recently USE  最近最少使用  get的使用

    默认memcache存储空间为64M 超过此空间,就会删除不太常用key,存储新的key

    -M  禁用LRU机制  如果写满就会返回一个错误

    2、session入库共享

    session 会话技术  用来存储用户的状态信息

    默认存储在服务器的目录里的文件中。若果文件夹下的文件多的话,文件读写效率会降低。

    ①登录标识

    ②验证码的存储

    ③短信验证码

    问:有做过session入库操作么?session为什么要进行入库?

    答:有简单使用过。session入库的好处:

    ①session文件比较碎小,入库会提高session的读写效率

    ②为了能够共享session数据  跨站点(单点)登录   

    一般session共享操作会存储到mysql、memcacheredis

  • 相关阅读:
    【Mongodb教程 第九课 】MongoDB 删除文档
    【Mongodb教程 第八课 】MongoDB 更新文档
    【Mongodb教程 第七课 】MongoDB 查询文档
    【Mongodb教程 第六课 】MongoDB 插入文档
    【Mongodb教程 第五课 】MongoDB 删除集合
    【Mongodb教程 第四课 】MongoDB 创建集合
    【Mongodb教程 第三课 】MongoDB 删除数据库
    【Mongodb教程 第二课 】 MongoDB 创建数据库 use 命令
    题解 P2821 【变幻数】
    题解 P6249 【神帖】
  • 原文地址:https://www.cnblogs.com/songyanan/p/8264115.html
Copyright © 2011-2022 走看看