php - 如何将数据库值存储在memcache中并从memcache中显示它

标签 php memcached

我在mysql中有一个数据库,我想第一时间从mysql获取数据并将其存储在memcache中。
第二次我想从 memcahce 获取它并从 memcache 显示它 2-3 分钟,然后再次从数据库显示它。我对内存缓存非常陌生,希望有一个小例子以便我能够理解。

最佳答案

从 Memcache 开始,创建一个简单的数据库并在其中插入一些值。我给你一个php文件,无论你想要什么,都将其命名为sample_memcache.php
注意:$dbhost、$dbuser、$dbpass、$dbname 分别是您的本地主机、数据库用户名、密码和数据库名称。

<html>
<head>
</head>
<body>
<form method="post">
  <p><b>Name</b>: <input type="text" size="20" name="name" /></p>
<input type="submit" value="Submit" />
</form>
<?php
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect");
mysql_select_db($dbname);
$id = $_REQUEST['name'];
//echo $id;
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');

$key = md5("SELECT * FROM memc where FirstName='{$id}'");
//echo $key;
$get_result = array();
$get_result = $memcache->get($key);

if ($get_result) {
        echo "<pre>\n";
        echo "FirstName: " . $get_result['FirstName'] . "\n";
        echo "LastName: " . $get_result['LastName'] . "\n";
        echo "Age: " . $get_result['Age'] . "\n";
        echo "Retrieved From Cache\n";
        echo "</pre>\n";
} else {
        // Run the query and get the data from the database then cache it
    //echo $id;
        $query="SELECT * FROM memc where FirstName='{$id}'";
     //echo $query;
        $result = mysql_query($query);

        $row = mysql_fetch_array($result);
        echo "<pre>\n";
        echo "FirstName: " . $row[1] . "\n";
        echo "LastName: " . $row[2] . "\n";
        echo "Age: " . $row[3] . "\n";
        echo "Retrieved from the Database\n";
        echo "</pre>\n";
        $memcache->set($key, $row, MEMCACHE_COMPRESSED, 60); // Store the result of the query for 20 seconds

        mysql_free_result($result);
}

?>
</body>
</html>

关于php - 如何将数据库值存储在memcache中并从memcache中显示它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8575523/

相关文章:

php - 如何从 MySQL 数据库获取时间戳?

java - 当 App Engine (Java) 启动新实例时,如何确保任务队列 Memcache cron 在它们之间共享?

django 使用 memcached 缓存后端 — 我这样做对吗?

PHP/MySQL 搜索

PHP:使用较短的标签不起作用

PHP/jQuery : jQuery posts variable but PHP not reading it

java - Memcache key 生成策略

php - MySQL链接(mysql_connect)是否可以存储在Memcache中重复使用?

ruby-on-rails - 带有 Memcache 的 Rails 返回错误的缓存对象?

php - 使用 Laravel 5.5 存储检查文件是否存在?头像存储