1. 程式人生 > >memcached優化方案實例

memcached優化方案實例

class 發布 persist 內存 asc select bsp true 傳值

<?php
//引入memcached
require_once ‘../class/memcached.class.php‘;

//連接MySQL
$link = mysqli_connect("localhost", "root", "", "laravel");

//給memcached傳值
$mc = new memcached(array(
‘servers‘ => array(‘127.0.0.1:11211‘),
‘debug‘ => false,
‘compress_threshold‘ => 10240,
‘persistant‘ => true,
));

//獲取文章id
$id = $_GET[‘id‘];

//設置key
$key = "news_click_" . $id; // 33 100 news_click_33 102

//獲取key
$click = @$mc->get($key);

//如果內存中沒有
if ($click === null) {
//如果內存中沒有,去數據庫讀點擊數
//根據id,讀文章記錄
$sql = "select clicknum from news where id=$id";
//執行
$result = mysqli_query($link, $sql);
//獲取結果
$arr = mysqli_fetch_assoc($result);
//獲取瀏覽量
$click = $arr[‘clicknum‘];
//自增瀏覽量
$click++;
//添加內存
$mc->add($key, $click);
} else {
//如果有內存, 直接自增值
$mc->incr($key, 1);

//本次訪問量+1
$click++;

//減少數據庫壓力,5次一蹦
if ($click % 5 == 0) {
$sql = "update news set clicknum=$click where id=$id";
mysqli_query($link, $sql);
}

}

//數據庫表中,記錄的點擊數要自增1
echo "document.write(‘{$click}‘)";

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title
>Document</title> </head> <body> <h1>隔壁老王,幫助別人,從不留名</h1> <div>發布時間:2018-07-03&nbsp;&nbsp;點擊數: <script type="text/javascript" src="click.php?id=1"></script> </div> <hr/> <div>很隨便</div> </body> </html>

memcached優化方案實例