Memcache

  1. 就是一个数据库,将数据保存在内存中

  2. 常用于缓存服务器,保存操作频繁,丢失无所谓的数据

启动选项

  1. -d 是一个守护进程

  2. -m 内存分配

  3. -u 用户

  4. -l 监听地址

  5. -p 端口

  6. -c 最大并发连接数

  7. -p pid文件路径

作为后台启动 memcached -p 11211 -m 64m -d -u root

! telnet推出的时候 quit ,^c完全没有用

操作Me

  1. 增/改 set set key 是否压缩(0 - 否 ,1 - 是) 缓存时间 / s 数据长度 ,回车后输入 val

  2. 获取值 get key

  3. 添加键数据 add key 是否压缩 缓存时间 数据长度 (只能添加不能修改)

  4. 修改键数据 replace key 是否压缩 缓存时间 数据长度

  5. 删除键 delete key

  6. 删除所有键 flush_all

  7. 递增 incr 和 递减 decr key number

  8. 查看Me允许状态 stats , 以下为状态表

    pid: memcache服务器进程ID

    uptime:服务器已运行秒数

    time:服务器当前Unix时间戳

    version:memcache版本

    pointer_size:操作系统指针大小

    rusage_user:进程累计用户时间

    rusage_system:进程累计系统时间

    curr_connections:当前连接数量

    total_connections:Memcached运行以来连接总数

    connection_structures:Memcached分配的连接结构数量

    cmd_get:get命令请求次数

    cmd_set:set命令请求次数

    cmd_flush:flush命令请求次数

    get_hits:get命令命中次数

    get_misses:get命令未命中次数

    delete_misses:delete命令未命中次数

    delete_hits:delete命令命中次数

    incr_misses:incr命令未命中次数

    incr_hits:incr命令命中次数

    decr_misses:decr命令未命中次数

    decr_hits:decr命令命中次数

    cas_misses:cas命令未命中次数

    cas_hits:cas命令命中次数

    cas_badval:使用擦拭次数

    auth_cmds:认证命令处理的次数

    auth_errors:认证失败数目

    bytes_read:读取总字节数

    bytes_written:发送总字节数

    limit_maxbytes:分配的内存总大小(字节)

    accepting_conns:服务器是否达到过最大连接(0/1)

    listen_disabled_num:失效的监听数

    threads:当前线程数

    conn_yields:连接操作主动放弃数目

    bytes:当前存储占用的字节数

    curr_items:当前存储的数据总数

    total_items:启动以来存储的数据总数**(包括过期的)**

    evictions:LRU释放的对象数目

    reclaimed:已过期的数据条目来存储新数据的数目

Php集合Me

php有两个Me的客户端分别是 Me(老客户端) 和 Med (新客户端)

还有就是Me这个扩展好像是没有Php7以上的版本 = =,具体我也没有去看。

关于Med 和 Me 的Api还是有一点差别的。

Me相关特性

  1. 惰性过期 (Lazy Expiration) 只有在get时才会主动检测是否过期

  2. 最近最少使用 (Least Recently Used) 内存已满清空下,将最少使用的数据删除

  3. 单个key_name 最大 250字节

  4. 一个item 最大可以存1m 的数据

Session 入 Me

在多台服务器的(如:集群)这种情况下,会做到session无法共享,这样就无法去认证用户。

于是就有了session入库,或把session存入Me之类的做法。

当然了,在如今,关于认证不仅仅可以用session去做,还可以用 JWT 之类的技术去实现。

什么是JWT?

这里主要实现一下 Session 入 Me

有一下几种方式:

  1. 先去修改 php.ini 配置 session.save_handler = files >> memcache 修改保存工具 session.save_path = "tcp://127.0.0.1:11211" 同时要修改保存地址,因为已经不是文件了 (这种最简单的说)

  1. 临时修改,同上以用,只是在文件的顶端加入 ini_set(set_name,set_config)

  2. 自定义会话存储函数 从5.4开始可以去实现SessionHandlerInterface这个工具接口。

 class MeSessionHandler implements \SessionHandlerInterface
{
priavte $me; public static function start()
{
# 更改session存储方式
session_set_have_handler(new self, true);
session_start();_
} public function open($savePath, $sessionName)
{
$this->me = new Memcache();
$this->me->addServer('localhost', 11211);
return true;
} public function close()
{
return true;
} public function read($sessionId)
{
return $this->me->get($sessionId) ? : '';
} public function write($sessionId, $data)
{
return $this->me->set($sessionId, $data);
} public function destroy($sessionId)
{
return true;
} public function gc($lifeTime)
{
return true;
} }
    

接下来 MeSessionHandler::start() 就可以开启session了,这时候往 $_SESSION去存入到时候,则会存入Me中。

超级简单的Memcache入门的更多相关文章

  1. JS基础(超级简单)

    1     JS基础(超级简单) 1.1 数据类型 1.1.1   基本类型: 1)        Number:特别注意:NaN的检测方法:Nan!=NaN;或者使用isNaN方法 2)       ...

  2. JavaScript,一个超级简单的方法判断浏览器的内核前缀

    先说明,此处的方法是说超级简单的方法,不是指代码超级少,而是用非常简单的知识点,只要懂得怎么写JavaScript的行内样式就可以判断. 大家应该还记得JavaScript行内样式怎么写吧?(看来我是 ...

  3. zw版_Halcon图像交换、数据格式、以及超级简单实用的DIY全内存计算.TXT

    zw版_Halcon图像交换.数据格式.以及超级简单实用的DIY全内存计算.TXT Halcon由于效率和其他原因,内部图像采用了很多自有格式,提高运行速度,但在数据交换方面非常麻烦. 特别是基于co ...

  4. 一个简单的iBatis入门例子

    一个简单的iBatis入门例子,用ORACLE和Java测试 目录结构: 1.导入iBatis和oracle驱动. 2.创建类Person.java package com.ibeats;import ...

  5. phpexcelreader超级简单使用

    phpexcelreader超级简单使用 该php类可以到官网下载:http://www.codeplex.com/PHPExcel,下载的文件不能直接使用要看下面的备注. 备注: 1.要将olere ...

  6. 哈,又一款超级简单的队列(MQ)实现方案来了~

    开源的消息队列已经很多了,但大部分很重,实际环境下,很多可能只是使用到了一点功能而已,杀鸡使用牛刀,着实有些浪费了.很多时候,我们只想要一片绿叶,但它们给了我们整个的春天,很难消化.本着DIR精神, ...

  7. JQuery -> 超级简单的下拉菜单

    使用jquery实现一个超级简单的下拉菜单. 效果图 最初的效果 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRmVlTGFuZw==/font/5a6L ...

  8. html超级简单实现点赞(收藏)和取消赞效果

    1.前言 我们经常会遇到对一些列表呀进行点赞呀收藏数据等效果呀.今天就用html+css实现超级简单易上手的点赞和取消赞的demo展示. 2.详情 1.css样式 .like{ font-size:6 ...

  9. Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷

    Android高级控件(四)--VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷 是不是感觉QQ空间什么的每次新版本更新那炫炫的引导页就特别的激动,哈哈,其实他实现起来真的很简单很 ...

随机推荐

  1. 【leetcode】492. Construct the Rectangle

    problem 492. Construct the Rectangle 参考 1. Leetcode_492. Construct the Rectangle; 完

  2. Api文件

    对于我们不认识的类(只限于java自带的类),我们可以百度去查一下,但是这样是嚼别人吃剩下的骨头,我们可以去查java的api文件,虽然都是英语,但是还是硬着头皮看吧,加油! 链接:https://p ...

  3. ECDSA host key for 192.168.0.101 has changed and you have requested strict checking.

    原文地址:http://blog.csdn.net/ausboyue/article/details/52775281 Linux SSH命令错误:ECDSA host key "ip地址& ...

  4. ubuntu下绑定串口

    查看有哪些设备连接在你的电脑上 lsusb 得到如图: 查看usb串口上连接的信息,得到不一样的信息 dmesg | grep ttyS* 我使用了一个usb扩展器,这边可以看到,被连接在ttyUSB ...

  5. Python全栈之路----常用模块----序列化(json&pickle&shelve)模块详解

    把内存数据转成字符,叫序列化:把字符转成内存数据类型,叫反序列化. Json模块 Json模块提供了四个功能:序列化:dumps.dump:反序列化:loads.load. import json d ...

  6. ArcGIS中的坐标系:基本概念和常用操作(二)

    关于坐标系,上次的内容还没有结束. 上次已经解释清楚关于投影坐标系和地理坐标系的区别了,它们在实际应用上也有诸多不同. 下面这张图应该比较清晰 我们经常能发现,当计算面积时,提示面积已禁用,原因就在于 ...

  7. JAVA乐观锁、悲观锁实现

    一.名词解释 1.悲观锁:认为每次对数据库的操作(查询.修改)都是不安全的,因此每次操作都会把这条数据锁掉,直到本次操作完毕释放该锁 2.乐观锁:查询数据的时候总是认为是安全的,不会锁数据:等到更新数 ...

  8. MySQL-01-基础

    大纲 1)mysql存储结构: 数据库 -> 表 -> 数据   sql语句 2)管理数据库: 增加: create database 数据库 default character utf8 ...

  9. PTA——数组平移

    PTA 7-52 数组元素循环右移问题 #include <stdio.h> int main(){ ]; int n,m,t,c; scanf("%d%d",& ...

  10. robot framework类型强制转换

    在测试过程中需要比较两个数值是否存在一定的关系 1.若新增一个数据,删除一个数据,判断他是否新增成功或者删除成功,除了判断本身数据成功显示与不显示之外,可以通过总数间接去判断是否成功 A)新增删除前获 ...