Skymvc是一款简洁、快速、高效的php开发框架,是敏捷开发必备工具。支持多模板机制,一套程序可以同时开发PC端、wap端、和app接口。
下载地址:github下载

skymvc的cache配置和使用

发布时间:2017-09-12

skymvc开放cache接口,使用起来很简单,支持redis\memcache\mysql\file。

//设置缓存
cache()->set($key,$val,$expire);
//获取缓存
cache()->get($key);

config.php 配置

cache默认顺序是以下的,默认使用file存储,大家可以配置。

/*缓存配置*/
$cacheconfig=array(
 "redis"=>false,
 "memcache"=>false,
 "mysql"=>false,
 "file"=>true,
 "php"=>true
 
 
);


具体类型缓存配置

memcache

<?php
$memHost="127.0.0.1";
$memPort="11211"; 
if(class_exists("memcached")){
 $globalMemcache= new Memcached();
 $globalMemcache->addServer($memHost,$memPort);
 function cache_mem_set($key,$val,$expire=0){
  global $globalMemcache;
  $val=urlencode(json_encode($val));
  $globalMemcache->set($key,$val,0,time()+$expire);
 }
 
 function cache_mem_get($key){
  global $globalMemcache;
  $val=$globalMemcache->get($key);  
  $val=json_decode(urldecode($val),true); 
  return $val;
 }
 
 function cache_mem_delete($key){
  global $globalMemcache;
  $globalMemcache->delete($key);
 }
}else{
 

 $globalMemcache= new Memcache;
 $globalMemcache->connect($memHost,$memPort);
 function cache_mem_set($key,$val,$expire=0){
  global $globalMemcache;
  $val=urlencode(json_encode($val));
  $globalMemcache->set($key,$val,0,$expire);
 }
 
 function cache_mem_get($key){
  global $globalMemcache;
  $val=$globalMemcache->get($key);
  $val=json_decode(urldecode($val),true); 
   
  return $val;
 }
 
 function cache_mem_delete($key){
   global $globalMemcache;
   $globalMemcache->delete($key);
 }
 
} 
?>


Redis

<?php
 
$globalRedis=new redis();
$globalRedis->connect("127.0.0.1","6379");
function cache_redis_set($key,$val,$expire=0){
 global $globalRedis;
 $val=base64_encode(json_encode($val));
 if($expire==0){
   
  $globalRedis->set($key,$val);
 }else{
  $globalRedis->setEx($key,$expire,$val);
 }
 
}

function cache_redis_get($key){
 global $globalRedis;
  
 $val= $globalRedis->get($key);
 $val=json_decode(base64_decode($val),true);
  
 return $val;
}

function cache_redis_delete($key){
 global $globalRedis;
 return $globalRedis->delete($key);
}

?>

mysql

<?php
function cache_mysql_set($k,$v,$expire){  
 $row=M('dbcache')->selectRow("k='".$k."'");
 $data=array(
  "k"=>$k,
  "v"=>urlencode(json_encode($v)), 
  "expire"=>time()+$expire
 );
 if(empty($row)){
  M('dbcache')->insert($data);
 }else{
  M('dbcache')->update($data,"id=".$row['id']);
 }
}

function cache_mysql_get($k){
 $row=M('dbcache')->selectRow("k='".$k."'");
 echo "mysql";
 if($row && $row['expire']>time()){
  return json_decode(urldecode($row['v']),true); 
 }
 
 return false;
}
?>