Home > Backend Development > PHP Tutorial > How to use php to determine whether memcache key/value exists

How to use php to determine whether memcache key/value exists

jacklove
Release: 2023-03-31 07:28:02
Original
1513 people have browsed it

1. Introduction to memcache

memcache is a set of distributed cache software used for data caching and distributed website sessions Storage etc. Use the key=>value method to store data and support data compression storage processing and data expiration processing.
value only supports string. If you need other formats, you can convert it to json first and then save it.

Usage:

<?php$m = new Memcache;$m->connect(&#39;localhost&#39;, 11211);$m->set(&#39;foo&#39;, 100); // 保存数据echo $m->get(&#39;foo&#39;); // 读取数据?>
Copy after login

Use memcache as a data cache. The steps are generally
1. Determine whether memcache has data. If so, return directly, otherwise from Get data from the data source.
2. After obtaining the data from the data source, write it into memcache as a cache and wait for the next request.

2. Determine whether memcache data exists

To determine whether memcache has data, the data is usually obtained through the get method and is judged based on whether the data is false.

<?php$m = new Memcache;$m->connect(&#39;localhost&#39;, 11211);$m->set(&#39;foo&#39;, 100);if($m->get(&#39;foo&#39;)){    echo &#39;foo 存在<br>&#39;;
}else{    echo &#39;foo 不存在<br>&#39;;
}$m->delete(&#39;foo&#39;);if($m->get(&#39;foo&#39;)){    echo &#39;foo 存在<br>&#39;;
}else{    echo &#39;foo 不存在<br>&#39;;
}?>
Copy after login

But this judgment is not rigorous enough. If the value is false or null, it will be judged as not existing. We can judge whether the data exists by judging whether the key exists.

3. Determine whether memcache key exists

<?php$m = new Memcache;$m->connect(&#39;localhost&#39;, 11211);// 正常值判断echo &#39;正常值判断:&#39;;$m->set(&#39;foo&#39;, 100);if(check_key_exists($m, &#39;foo&#39;)){    echo &#39;foo key存在<br>&#39;;
}else{    echo &#39;foo key不存在<br>&#39;;
}// false判断echo &#39;false判断:&#39;;$m->set(&#39;foo&#39;, false);if(check_key_exists($m, &#39;foo&#39;)){    echo &#39;foo key存在<br>&#39;;
}else{    echo &#39;foo key不存在<br>&#39;;
}// null判断echo &#39;null判断:&#39;;$m->set(&#39;foo&#39;, null);if(check_key_exists($m, &#39;foo&#39;)){    echo &#39;foo key存在<br>&#39;;
}else{    echo &#39;foo key不存在<br>&#39;;
}// 数据过期后判断,1秒后过期echo &#39;过期判断:&#39;;$m->set(&#39;foo&#39;, 100, 0, 1);
sleep(2);if(check_key_exists($m, &#39;foo&#39;)){    echo &#39;foo key存在<br>&#39;;
}else{    echo &#39;foo key不存在<br>&#39;;
}// delete后判断echo &#39;delete后判断:&#39;;$m->set(&#39;foo&#39;, 100);$m->delete(&#39;foo&#39;);if(check_key_exists($m, &#39;foo&#39;)){    echo &#39;foo key存在<br>&#39;;
}else{    echo &#39;foo key不存在<br>&#39;;
}/**
 * @param Obj      $m    memcache obj
 * @param String   $name key name
 * @return Boolean
 */function check_key_exists($m, $name){
    $data = $m->get($name);    return $data!==false;
}?>
Copy after login

Output:
Normal value judgment: foo key exists
False judgment: foo key exists
Null judgment: foo key exists
Expired judgment: foo key does not exist
Judgment after delete: foo key does not exist

Only the key is delete or has expired will be judged as not existing. In other cases, even if the value is null/false, it will exist.

Note: If the value of value is false, the result obtained by using the memcache get method is ""empty string, Because memcache can only save string data, false is converted to an empty string when saving.

This article explains how to use PHP to determine whether the memcache key/value exists. For more related content, please pay attention to the PHP Chinese website.

Related recommendations:

How to let php send custom data through header

How to use inet_aton and inet_ntoa through mysql Processing ip address data

php json data using gzip compression output related content

The above is the detailed content of How to use php to determine whether memcache key/value exists. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template