php memcached数据缓存入门例子

发布时间:2019-09-08编辑:脚本学堂
有关php memcached进行数据缓存的入门例子,如何保护memcached缓存数据的安全,通过一个例子,来深入学习下。

php memcached入门实例

memcached的访问流程:
在访问缓存的过程中,没有任何权限控制的相关流程,对于一般数据,不用考虑其安全性。

但对于重要的数据,则请考虑如下memcache的安全要素:
使用唯一的 key:因为在 memcached 中的数据是以一个大的数组形式存在的,所以你应该使用唯一的 key。
如何做到访问数据?唯一办法就是通过保存数据时的 key,除此之外再没有其它可查询的办法。

保证 memcached 器安全:因为 memcached 本身并没有身份验证机制,所以对 memcached 的服务器查询,都应该通过防火墙进行,你可以在防火墙上设定规则,哪些服务器是允许被访问的,哪些是不允许被访问的.

加密数据:
可以将数据和 key 通过加密的方式保存在 memcached 中,这需要花费一些额外的 cpu 时间,但是为了数据安全,情况允许的情况下,此方法可以一试。

例子:
 

复制代码 代码示例:
<?php
class mycache
{
  private $cache;
  function  __construct()
  {
    $this->cache = new memcache();
    // you can replace localhost by memcached server ip addr and port no.
    $this->cache->connect('localhost', 10987);
  } // www.jb200.com
 
  function get_data($key)
  {
    $data = $this->cache->get($key);
    if($data != null)
      return $data;
    else
    {
      if($this->cache->getresultcode() == memcached::res_notfound)
      {
        //do the databse query here and fetch data
        $this->cache->set($key,$data_returned_from_database);
      }
      else
      {
        error_log('no data for key '.$key);
      }
    }
  }
}
$cache = mycache();
$cache->get_data('foo');
?>