mlczhg 发表于 2017-3-30 10:57:53

【汇总】PHP【memcache协议】

  在面试的时候,被问到了关于memcache的很多方面,发现自己只知道set,get是不够的,所以重新整理下
  

  基本内容

[*]Memcache— Memcache类

[*]Memcache::add— 增加一个条目到缓存服务器
[*]Memcache::addServer— 向连接池中添加一个memcache服务器
[*]Memcache::close— 关闭memcache连接
[*]Memcache::connect— 打开一个memcached服务端连接
[*]Memcache::decrement— 减小元素的值
[*]Memcache::delete— 从服务端删除一个元素
[*]Memcache::flush— 清洗(删除)已经存储的所有的元素
[*]Memcache::get— 从服务端检回一个元素
[*]Memcache::getExtendedStats— 缓存服务器池中所有服务器统计信息
[*]Memcache::getServerStatus— 用于获取一个服务器的在线/离线状态
[*]Memcache::getStats— 获取服务器统计信息
[*]Memcache::getVersion— 返回服务器版本信息
[*]Memcache::increment— 增加一个元素的值
[*]Memcache::pconnect— 打开一个到服务器的持久化连接
[*]Memcache::replace— 替换已经存在的元素的值
[*]Memcache::set— Store data at the server
[*]Memcache::setCompressThreshold— 开启大值自动压缩
[*]Memcache::setServerParams— 运行时修改服务器参数和状态

  

  实际场景中经常需要遇到的情况
  -------------------------------
  Memcache::add()
  如果不存在,再赋值
  

  Memcache::addServer()
  当使用这个方法的时候,   网络连接并不会立刻建立,而是直到真正使用的时候才建立。 因此在加入大量服务器到连接池中时也是没有开销的,因为它们可能并不会被使用。
  

  Memcache::decrement()
  在元素不存在时不能创建它
  首先将元素当前值转换成数值然后减去value
  新的元素的值不会小于0
  

  Memcache::flush()
  立即使所有已经存在的元素失效
  并不会真正的释放任何资源,而是仅仅标记所有元素都失效了,因此已经被使用的内存会被新的元素复写。
  

  Memcache::increment()
  不会在key对应元素不存在时创建元素。
  将指定元素的值增加value。
  如果指定的key对应的元素不是数值类型并且不能被转换为数值, 会将此值修改为value.
  

  Memcache::replace()
  通过key来查找元素并替换其值。
  当key对应的元素不存在时,返回FALSE。
  

  ---------------------------------------------
  
页: [1]
查看完整版本: 【汇总】PHP【memcache协议】