Maison > développement back-end > tutoriel php > Traitement du cache de données d'accès PHP

Traitement du cache de données d'accès PHP

little bottle
Libérer: 2023-04-05 21:26:01
avant
3432 Les gens l'ont consulté

Cet article parle du traitement de la mise en cache des données d'accès PHP, de l'utilisation de Redis ou Memcache comme cache de MySQL et de l'utilisation du framework ThinkPHP.

Méthode 1

  • Utilisez la méthode S de ThinkPHP :
$savedata['uid']=session('uid');
$savedata['ip']=$_SERVER['REMOTE_ADDR'];    
$savedata['url']=$_SERVER['REQUEST_URI'];         
$savedata['created_time']=time();
$savedata['created_by']=session('uid');

$cache = S(array('type'=>'redis','host'=>'127.0.0.1','port'=>'6379','prefix'=>'think','expire'=>600000));
// 获取缓存
$visitor_data = $cache->visitor_data;
if(empty($visitor_data)){
    $visitor_data=array();
}
array_push($visitor_data, $savedata);

// 设置缓存
$cache->visitor_data = $visitor_data;

if(count($visitor_data)>3){
    foreach ($visitor_data as $key => $value) {
       $m = M("VisitorLog");
        $m->add($value);
    }
    // 删除缓存
    unset($cache->visitor_data);
}
Copier après la connexion

Méthode 2

  • Utilisez Redis
$savedata['uid']=session('uid');
$savedata['ip']=$_SERVER['REMOTE_ADDR'];    
$savedata['url']=$_SERVER['REQUEST_URI'];         
$savedata['created_time']=time();
$savedata['created_by']=session('uid');

// 连接本地的 Redis 服务
$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);

//查看服务是否运行
if(empty($redis)){
    return dataResult(null,'',0);            
}
//存储数据到列表中
$redis->lpush("visitor_data",json_encode($savedata));
// 获取存储的数据并输出
$len=$redis->llen("visitor_data");
if($len>2){
    $visitor_data = $redis->lrange("visitor_data",0,$len);
    foreach ($visitor_data as $key => $value) {
        $m = M("VisitorLog");
        $m->add(json_decode($value,true));
    }
    $redis->del("visitor_data");
}
Copier après la connexion

Méthode 3

  • Utilisation de Memcache :
$savedata['uid']=session('uid');
$savedata['ip']=$_SERVER['REMOTE_ADDR'];    
$savedata['url']=$_SERVER['REQUEST_URI'];         
$savedata['created_time']=time();
$savedata['created_by']=session('uid');

$memcache = new \Memcache;             //创建一个memcache对象
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect"); //连接Memcached服务器
$visitor_data = $memcache->get('visitor_data');   //从内存中取出key的值
if(empty($visitor_data)){
    $visitor_data=array();
}
if(count($visitor_data)>2){
    foreach ($visitor_data as $key => $value) {
        $m = M("VisitorLog");
        $m->add($value);
    }
    unset($visitor_data);
    $visitor_data=array();
}
array_push($visitor_data,$savedata);
$memcache->set('visitor_data', $visitor_data);        //设置一个变量到内存中,名称是key 值是test
Copier après la connexion

Si vous souhaitez en savoir plus sur PHP, assurez-vous de allez Regardez le Tutoriel vidéo PHP sur le site PHP chinois !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Derniers numéros
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal