设置值

set key 压缩标识 有效期 长度

set name 0 60 5

hello

压缩标识:用于告诉memcached服务器是否压所后存储数据,目的是为了节省磁盘空间,压所和解压缩会消耗时间

有效期:用于key在什么时间失效,设置方式有两种,时间间隔和时间戳,区分时间间隔和时间戳的方法:

临界值:308243600=2592000(30天)

长度:值的大小(字节为单位)

键:由字母数字下划线标识符组成,长度不要大于250字节,在实际开发中,建议使用前缀

值:需要缓存的数据内容,字符串,在实际开发中,配合序列化和反序列化使用,单个值不能超过1M

add age 0 0 2 仅添加,如果key已经存在,则添加失败

replace 仅替换,如果key不不存在的,则替换失败

delete key 删除指定的key缓存

fash all 清空所有缓存

stats 获取当前memcached服务器的状态

hits:命中率:

misses:未命中率:

关注它的原因就是要查看缓存内容是否有效,有否被获取到。如果命中率太低了,就证明缓存的数据有问题。需要把缓存数据整理好。重新存放。缓存命中率有70%就可以了。

提升命中率,应该讲常用的获取频繁的数据放在存储缓存中,实际开发中,缓存需要预热处理。

stats items 命令用于显示各个slab中item的数目和存储时长(最后一次访问距离现在的秒数)

stats cachedump slabs_id limit_num

slabs_id: 由stats items返回的结果(STAT items后面的数字)决定的

limit_num:返回的纪录数,0表示返回所有记录

内存的限制:32位下最大的设置为2Gs

如果有30G的数据要缓存,一般也不会单实例装30G,一般建议 开启多个实例(可以在不同的机器或者同台机器上的不同端口)

标量类型

整型

<?php
$mem=memcache_connect('127.0.0.1',11211);
$int=123;
$mem->set('int',$int,0,0);
$value=$mem->get('int');
halt($value);
//结果
string "123"

字符串

<?php
$mem=memcache_connect('127.0.0.1',11211);
$str="123";
$mem->set('str',$str,0,0);
$value=$mem->get('str');
halt($value);
//结果
string "123"

布尔

<?php
$mem=memcache_connect('127.0.0.1',11211);
$true=true
$mem->set('true',$true,0,0);
$value=$mem->get('true');
halt($value);
//结果
string "1"
布尔值是真,隐式转化1 //返回假的情况
string ""
返回的是空字符串

非标量类型

数组

<?php
$mem=memcache_connect('127.0.0.1',11211);
$str=[1,2,3,4];
$mem->set('str',$str,0,0);
$value=$mem->get('str');
halt($value);
// 浏览器返回结果
array [1,2,3,4]
//服务器数据
//get arr
//value arr 1 46
序列化与反序列化:
PHP在存储数据的时候,通过php_memcache.dll扩展实现的序列化。在反序列化的时候,也是我们的扩展帮助我们实现的序列化。

对象

<?php
class A{
private $name='chen'; function getName(){
return $this->name;
}
} $mem=memcache_connect('127.0.0.1',11211);
$obj=new A();
$mem->set('obj',$obj,0,0),;
$value=$mem->get('obj');
halt($value);
echo $value->getName();
?>

//结果:

obj...

对象在存储的时候,也是会被序列化的。同样也是和数组是一样的。是在扩展端实现的序列化与反序列化。

NULL

返回结果是null

资源类型

同样也是在序列化之后存储到服务器的。取出来之后也实现了反序列化。但是这样值不再可用了。因为资源类型被序列化的时候,不能被完整描述。

php链接memcache操作的更多相关文章

  1. memcache 操作类

    <?php /** * memcache 操作实现 * @author timeless */ class Memcache_manage { //CI原始的信息 private $_ci; p ...

  2. jmeter链接数据库操作

    jmeter链接数据库操作步骤 首先要先下载mysql-connector-java-5.1.39-bin.jar驱动包 链接:https://pan.baidu.com/s/14F4rp4uH1hX ...

  3. python之redis和memcache操作

    Redis 教程 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据 ...

  4. ubuntun安装ssh,并远程链接服务器操作

    SSH是一种以安全.加密方式连接远程主机或服务器的方法.SSH服务器接受从有SSH的客户机的连接,允许操作者象在本地一样地登录系统.你可以用SSH从远程运行shell和X程序. (1)安装SSH服务器 ...

  5. PHP 对 memcache操作类

    <span style="font-size:18px;">class myMemcache { private $memcache; /** * 一般建议这2个值做成 ...

  6. memcache操作实例

    实例一: <?php //使用memcache类来操作 $mm = new Memcache(); $mm->addServer("192.168.70.114",11 ...

  7. python memcache操作-安装、连接memcache

    安装memecache wget http://memcached.org/latest tar -zxvf memcached-1.x.x.tar.gz cd memcached-1.x.x ./c ...

  8. python+selenium链接对象操作

    对于链接对象常见的操作有:单击.获取链接文字.获取链接地址等: from selenium import webdriverfrom time import sleep driver = webdri ...

  9. java链接并操作数据库

    链接准备 MySQL数据库驱动(连接器).mysql-connector-java-x.x.xx.jar会在MySQL安装时提供,若Mysql是默认安装路径,则连接器在:C:\Program File ...

随机推荐

  1. 图的连通性问题的小结 (双连通、2-SAT)

    图的连通性问题包括: 1.强连通分量. 2.最小点基和最小权点基. 3.双连通. 4.全局最小割. 5.2-SAT 一.强连通分量 强连通分量很少单独出题,一般都是把求强连通分量作为缩点工具. 有三种 ...

  2. powershell遍历文件夹设置权限,解决文件无法删除的问题。

    function set-rights ($path) { $p = Get-Item $path; if ($p.Attributes -eq 'Directory') { foreach ($ch ...

  3. Struts2学习笔记 - Part.02

    ================Struts2的国际化================程序国际化: 程序可以根据极其所在的国家.语言环境,自动显示当前国家.语言的内容国际化的本质是:查找.替换国际化的 ...

  4. 互联网汽车迎新成员 Alibaba YunOS Auto冠名2016世俱杯

    11月18日广州车展现场,阿里巴巴集团再次携手上汽集团连发三款搭载YunOS系统的互联网汽车,包括MG ZS.荣威eRX5和荣威i6.同时阿里巴巴集团YunOS总裁张春晖正式宣布互联网汽车业务全新升级 ...

  5. (转)基于MVC4+EasyUI的Web开发框架形成之旅--权限控制

    http://www.cnblogs.com/wuhuacong/p/3361351.html 我在上一篇随笔<基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍>中大 ...

  6. [Shell] echo/输出 中引用命令

    # 这样是错误的,是引用变量 echo "/Users/${whoami}/Desktop" >>> /Users//Desktop # 正确的写法应该是使用`` ...

  7. layer弹出框的用法

    页面中引入  layer.js 就行了 1.弹出一个提示信息: layer.msg("我是哦提示信息"); 2.弹出一个带选择的按钮的框 layer.open({ title: ' ...

  8. Ubuntu 16.04 安装python3.6 环境并设置为默认

    1.添加python3.6安装包,并且安装 sudo apt-get install software-properties-common 2.下载python3.6 sudo add-apt-rep ...

  9. Maven安装+配置

    原先的项目构建属于Ant,就是先export成jar文件,然后引用. Maven依赖一定是引用本地仓库的,所以会先从中央仓库把依赖下载下来存到本地.和NuGet是一样的. 下载 地址 选择一个zip, ...

  10. 路飞学城Python-Day136

    列举Http请求中常见的请求方式 根据HTTP标准,HTTP请求可以使用多种请求方法. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP1.1新增了五种请求方法:O ...