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

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

  1. <?php
  2.  
  3. /**
  4. * 进程间共享内存操作类
  5. */
  6. class Pshmop
  7. {
  8. protected static $_models = array();
  9. private $_yac = null;
  10. private static $_keyPrefix = 'shm_';
  11. private static $_ttlMaxTime = ; //86400*90 为防止永久贮存及保存时间过久造成内存消耗严重导致数据被踢出
  12.  
  13. /**
  14. * Returns the static model of the specified AR class.
  15. * @param string $className active record class name.
  16. * @return Order the static model class
  17. */
  18. public static function model($className = __CLASS__)
  19. {
  20. $model = null;
  21. if (isset(self::$_models[$className]))
  22. $model = self::$_models[$className];
  23. else {
  24. $model = self::$_models[$className] = new $className(null);
  25. }
  26. return $model;
  27. }
  28.  
  29. public function __construct() {
  30. if(extension_loaded("yac")){
  31. $this->_yac = new Yac(self::$_keyPrefix);
  32. }
  33. }
  34.  
  35. /**
  36. * add value
  37. * @param mixed $keys
  38. * @param mixed $value
  39. * @param int $ttl
  40. * @return mixed
  41. */
  42. public function add($key, $value, $ttl=-){
  43. if(empty($key)){
  44. return null;
  45. }
  46.  
  47. if(empty($this->_yac)){
  48. return null;
  49. }
  50.  
  51. if($ttl< || $ttl>self::$_ttlMaxTime){
  52. $ttl = self::$_ttlMaxTime;
  53. }
  54.  
  55. return $this->_yac->add($key, $value, $ttl);
  56. }
  57.  
  58. /**
  59. * set value
  60. * @param mixed $keys
  61. * @param mixed $value
  62. * @param int $ttl
  63. * @return mixed
  64. */
  65. public function set($key, $value, $ttl=-){
  66. if(empty($key)){
  67. return null;
  68. }
  69.  
  70. if(empty($this->_yac)){
  71. return null;
  72. }
  73.  
  74. if($ttl< || $ttl>self::$_ttlMaxTime){
  75. $ttl = self::$_ttlMaxTime;
  76. }
  77.  
  78. return $this->_yac->set($key, $value, $ttl);
  79. }
  80.  
  81. /**
  82. * get value
  83. * @param mixed $keys
  84. * @return mixed
  85. */
  86. public function get($key){
  87. if(empty($key)){
  88. return null;
  89. }
  90.  
  91. if(empty($this->_yac)){
  92. return null;
  93. }
  94.  
  95. return $this->_yac->get($key);
  96. }
  97.  
  98. /**
  99. * delete key
  100. * @param mixed $keys
  101. * @param int $delay
  102. * @return mixed
  103. */
  104. public function delete($key, $delay=){
  105. if(empty($key)){
  106. return null;
  107. }
  108.  
  109. if(empty($this->_yac)){
  110. return null;
  111. }
  112.  
  113. return $this->_yac->delete($key, $delay);
  114. }
  115.  
  116. /**
  117. * flush shm
  118. * @param void
  119. * @return mixed
  120. */
  121. public function flush(){
  122.  
  123. if(empty($this->_yac)){
  124. return null;
  125. }
  126.  
  127. return $this->_yac->flush();
  128. }
  129.  
  130. /**
  131. * get shm info
  132. * @param void
  133. * @return mixed
  134. */
  135. public function info(){
  136.  
  137. if(empty($this->_yac)){
  138. return null;
  139. }
  140.  
  141. return $this->_yac->info();
  142. }
  143.  
  144. }

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. SQL - 2.基础语法

    一.SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GR ...

  2. js_2_逻辑分支

  3. 阿里云服务器ssh经常一段时间就断掉解决办法

    #vim /etc/ssh/sshd_config 找到下面两行 #ClientAliveInterval 0#ClientAliveCountMax 3 去掉注释,改成 ClientAliveInt ...

  4. jQuery实现select级联

    使用Html5的数据属性(data-*)Map级联关系,代码如下: <!DOCTYPE html> <html> <head> <title>Selec ...

  5. 在多个平台如何安装Python

    最近的一个项目,架构师米洛需要用的mqtt,服务器开发的时候,竟然用的python脚本.运行python就需要安装开发环境,好吧,百度一下就知道了大神廖雪峰.以下部分测试通过,转载记录如下. 因为Py ...

  6. Express全系列教程之(八):session的基本使用

    一.关于session session是另一种记录客户状态的机制,与cookie保存在客户端浏览器不同,session保存在服务器当中:当客户端访问服务器时,服务器会生成一个session对象,对象中 ...

  7. 缓存机制 ehcache、redis

    本文主要记录ehcache和redis实现缓存(redis版本号:5.0.3) 一.ehcache 1.ehcache:用来管理Java中缓存的轻量级工具,其核心通过CacheManager使用,一般 ...

  8. match 和 lastIndex 字符串检测差异

    match .replace .search 这写不能识别特殊字符 indexOf .indexof 能识别特殊字符 str.lastIndexOf('a') > -1 // 通过lastInd ...

  9. ADB——管理应用

    ADB应用管理 主要操作有查看应用列表.安装应用.卸载应用.清楚应用数据与缓存.查看前台Activity.查看应用信息及安装路径等等 查看应用列表 查看应用列表的基本命令格式是 adb shell p ...

  10. 学号 20175201张驰 《Java程序设计》第6周学习总结

    学号 20175201张驰 <Java程序设计>第6周学习总结 教材学习内容总结 第7章 ·1.Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类称为内部类的外嵌类 ...