Home  >  Article  >  Backend Development  >  How to use Memcached to cache data in PHP development

How to use Memcached to cache data in PHP development

王林
王林Original
2023-06-27 09:48:58685browse

With the continuous development of Internet applications, data storage and access have become a very important link in application development. Many times, we need to cache data in applications to improve application performance, response speed and user experience. This article will introduce how to use Memcached to cache data in PHP development to improve application performance.

Memcached is a high-performance, distributed memory caching system. It caches data in memory so it can be read and written quickly. In PHP development, we often use Memcached to cache calculation results, database query results and other data to improve application response speed and performance.

Installation and Configuration Memcached

Before we start using Memcached to cache data, we need to install and configure Memcached. In Linux systems, we can use the following command to install Memcached:

sudo apt-get update
sudo apt-get install memcached

After the installation is complete, we also need to install the PHP extension of Memcached. In Ubuntu system, we can use the following command to install the Memcached PHP extension:

sudo apt-get install php-memcached

After the installation is complete, add the following configuration in the php.ini configuration file:

extension=memcached.so

Then restart the Apache service or PHP-FPM service to make the configuration effective.

Using Memcached to cache data

Using Memcached to cache data is very simple. We just need to use the functions provided by the Memcached extension to operate. Here is an example of using Memcached to cache data:

<?php

// 连接到 Memcached 服务器
$memcached = new Memcached();
$memcached->addServer('localhost', 11211);

// 将数据缓存到 Memcached 中
$memcached->set('key', 'value', 10); // 缓存 10 秒

// 从 Memcached 中读取数据
$value = $memcached->get('key');
if ($value === false) {
    // 缓存不存在,从数据库中查询数据
    $value = 'data from database';
    
    // 将从数据库中查询的数据缓存到 Memcached 中
    $memcached->set('key', $value, 10);
}

echo $value;

In the above example, we first created a Memcached instance and added a Memcached server. Then we store the data in Memcached in the form of key-value and set the expiration time of the data to 10 seconds. When we need to access this data, we first query the data from Memcached. If the data does not exist, we query the data from the database and cache the query results in Memcached.

Advanced use of Memcached

In actual development, we can also use some advanced functions of Memcached to optimize our application performance. Here are some common advanced usages:

  • Set up multiple servers: Data can be distributed among multiple Memcached servers to improve application fault tolerance and performance.
  • Custom serialization and deserialization: Data serialization and deserialization methods can be customized to adapt to different data types and structures.
  • Batch operation: You can read and write multiple pieces of data in batches to improve data reading and writing performance.
  • Automatic failover: You can set an automatic failover policy to automatically switch to another server when a server goes down.
<?php

// 连接到多个 Memcached 服务器
$memcached = new Memcached();
$memcached->addServers([
    ['host1', 11211],
    ['host2', 11211]
]);

// 自定义序列化和反序列化方法
$memcached->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_IGBINARY);
$memcached->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_JSON);

// 批量操作
$values = [
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
];
$memcached->setMulti($values);

// 自动失败转移
$memcached->setOption(Memcached::OPT_CONNECT_TIMEOUT, 100);
$memcached->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$memcached->setOption(Memcached::OPT_SERVER_FAILURE_LIMIT, 5);
$memcached->setOption(Memcached::OPT_RETRY_TIMEOUT, 2);

Summary

Using Memcached to cache data can greatly improve application performance and response speed. In PHP development, we can use the Memcached PHP extension to implement data caching. In the process of using Memcached, we can also use some advanced features to further optimize our application performance.

The above is the detailed content of How to use Memcached to cache data in PHP development. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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