http://www.laruence.com/2013/03/18/2846.html   鸟哥介绍

https://www.cnblogs.com/willamwang/p/8918377.html  扩展安装

<?php

/**
* 进程间共享内存操作类
*/
class Pshmop
{
protected static $_models = array();
private $_yac = null;
private static $_keyPrefix = 'shm_';
private static $_ttlMaxTime = ; //86400*90 为防止永久贮存及保存时间过久造成内存消耗严重导致数据被踢出 /**
* Returns the static model of the specified AR class.
* @param string $className active record class name.
* @return Order the static model class
*/
public static function model($className = __CLASS__)
{
$model = null;
if (isset(self::$_models[$className]))
$model = self::$_models[$className];
else {
$model = self::$_models[$className] = new $className(null);
}
return $model;
} public function __construct() {
if(extension_loaded("yac")){
$this->_yac = new Yac(self::$_keyPrefix);
}
} /**
* add value
* @param mixed $keys
* @param mixed $value
* @param int $ttl
* @return mixed
*/
public function add($key, $value, $ttl=-){
if(empty($key)){
return null;
} if(empty($this->_yac)){
return null;
} if($ttl< || $ttl>self::$_ttlMaxTime){
$ttl = self::$_ttlMaxTime;
} return $this->_yac->add($key, $value, $ttl);
} /**
* set value
* @param mixed $keys
* @param mixed $value
* @param int $ttl
* @return mixed
*/
public function set($key, $value, $ttl=-){
if(empty($key)){
return null;
} if(empty($this->_yac)){
return null;
} if($ttl< || $ttl>self::$_ttlMaxTime){
$ttl = self::$_ttlMaxTime;
} return $this->_yac->set($key, $value, $ttl);
} /**
* get value
* @param mixed $keys
* @return mixed
*/
public function get($key){
if(empty($key)){
return null;
} if(empty($this->_yac)){
return null;
} return $this->_yac->get($key);
} /**
* delete key
* @param mixed $keys
* @param int $delay
* @return mixed
*/
public function delete($key, $delay=){
if(empty($key)){
return null;
} if(empty($this->_yac)){
return null;
} return $this->_yac->delete($key, $delay);
} /**
* flush shm
* @param void
* @return mixed
*/
public function flush(){ if(empty($this->_yac)){
return null;
} return $this->_yac->flush();
} /**
* get shm info
* @param void
* @return mixed
*/
public function info(){ if(empty($this->_yac)){
return null;
} return $this->_yac->info();
} }

PHP共享内存yac操作类的更多相关文章

  1. VC++ 共享内存读写操作

    此解决方案含两个工程文件,一个是写操作工程文件,即把任意字符串写入创建的共享内存里,另外一个读操作工程文件,则是读取共享内存里的数据,从而实现了进程之间的共享内存读写操作. 源码下载

  2. php操作共享内存shmop类及简单使用测试(代码)

    SimpleSHM 是一个较小的抽象层,用于使用 PHP 操作共享内存,支持以一种面向对象的方式轻松操作内存段.在编写使用共享内存进行存储的小型应用程序时,这个库可帮助创建非常简洁的代码.可以使用 3 ...

  3. Android系统匿名共享内存Ashmem(Anonymous Shared Memory)驱动程序源代码分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6664554 在上一文章Android系统匿名共 ...

  4. Android系统匿名共享内存(Anonymous Shared Memory)C++调用接口分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6939890 在Android系统中,针对移动设 ...

  5. Boost:shared_memory_object --- 共享内存

    什么是共享内存 共享内存是最快速的进程间通信机制.操作系统在几个进程的地址空间上映射一段内存,然后这几个进程可以在不需要调用操作系统函数的情况下在那段内存上进行读/写操作.但是,在进程读写共享内存时, ...

  6. Linux进程通信之System V共享内存

    前面已经介绍过了POSIX共享内存区,System V共享内存区在概念上类似POSIX共享内存区,POSIX共享内存区的使用是调用shm_open创建共享内存区后调用mmap进行内存区的映射,而Sys ...

  7. Linux 基于IPC机制实现进程间的共享内存处理

    今天学习了相关于IPC(InterProcess Communication ,进程间通信)的相关知识.就做个笔记,一来让大家检查一下我的理解方面是不是有错误,二来也为了能让更多的博友们了解到相关的知 ...

  8. 五十、进程间通信——System V IPC 之共享内存

    50.1 共享内存 50.1.1 共享内存的概念 共享内存区域是被多个进程共享的一部分物理内存 多个进程都可把该共享内存映射到自己的虚拟内存空间.所有用户空间的进程若要操作共享内存,都要将其映射到自己 ...

  9. PHP共享内存详解

    前言 在PHP中有这么一族函数,他们是对UNIX的V IPC函数族的包装. 它们很少被人们用到,但是它们却很强大.巧妙的运用它们,可以让你事倍功半. 它们包括: 信号量(Semaphores) 共享内 ...

随机推荐

  1. 构建Dubbo-2.0.7源码

    一. 下载源码: git clone --branch dubbo-2.0.7 https://github.com/apache/incubator-dubbo.git 二. 下载依赖 git cl ...

  2. Web Api使用Swagger提供在线文档

    1.添加Swashbuckle引用 2.生成XML文件 3.添加XML解析,在接口添加注释信息 4.运行项目输入地址   http://localhost:58254/swagger

  3. USACO1.4 1.5 搜索剪枝与数字 洛谷OJ P1214 P1215 P1217 P1218

    USACO1.4 题解 Arithmetic Progressions 题意 让你求长为n的由小于2*m*m的双平方数组成的等差数列有几个 双平方数:形如 B=P*P+Q*Q,p,q>0的数 题 ...

  4. RESTful levels 和 HATEOAS

    RESTful REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序.它首次出现在 2000 年 Roy ...

  5. Django ORM中datetiem数据类型字段无法对比处理办法

    在做商城项目中浏览足迹时,我利用浏览商品的ID和浏览的时间保存到browse表中,然后在我的足迹页面根据最近日期进行展示 条件:每天/个商品只能如一次表 后台代码如下: #存储浏览足迹到browse表 ...

  6. asp.net中的CheckBox控件的使用

    CheckBox控件中的最重要属性就是checked属性了 下面就是使用checked属性的一个小应用; 先建立一个wed窗体:在窗体中写下这些代码: <%@ Page Language=&qu ...

  7. Redis多机多节点集群实验

    第一步:环境准备 我们搞两台虚拟机 局域网IP 分别是 192.168.1.109和192.168.1.110 我们约定把192.168.1.109作为集群控制端,需要安装redis-trib.rb ...

  8. 《图解HTTP》读书笔记(四:HTTP方法)

    1.作用 告知服务器我的意图是什么使用以下方法下达命令. 2.方法 GET 方法用来请求访问已被 URI 识别的资源. 指定的资源经服务器端解析后返回响应内容. ---URI可以定位互联网上的资源 P ...

  9. 【LeetCode每天一题】Set Matrix Zeroes(设置0矩阵)

    Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in-place. Exampl ...

  10. ==还款-代偿(csv循环自动代偿)

    问题: 解决:传递参数错误,上一步就错了 问题:代偿返回这些信息 解决:传递参数错误,应该为${repayWay1},但是一直写的是${repayWay} 问题:如何从csv文件中逐条取项目编号,进行 ...