Cài đặt Memcahed trên Debian 12 - Install Memcached on Debian 12

Trong thế giới phát triển ứng dụng hiện đại, tối ưu hóa hiệu suất và tăng cường khả năng đáp ứng là những mục tiêu quan trọng. Một phần quan trọng trong việc đạt được mục tiêu này là sử dụng các công cụ cache hiệu quả. Trong bài viết này, chúng ta sẽ khám phá cách install và cấu hình Memcached trên hệ điều hành Debian 12. Memcached là một hệ thống cache dữ liệu phân tán mạnh mẽ, giúp tăng tốc độ truy vấn dữ liệu và giảm tải cho máy chủ cơ sở dữ liệu. Chúng ta sẽ đi qua từng bước cần thiết để bắt đầu sử dụng Memcached và tận dụng lợi ích của việc sử dụng cache trong ứng dụng của bạn.

Tiến hành install Memcached trên Debian 12

[1] Install Memcached

root@dlp:~# apt -y install memcached

[2] Cấu hình Memcached

root@dlp:~# vi /etc/memcached.conf
# line 23 : max chache memory size (MB)
-m 64
# line 26 : listening port
-p 11211
# line 30 : process owner
-u memcache
# line 35 : listens on localhost by default like follows
# if you'd like to use memcached from other Hosts, change to own IP address or to [0.0.0.0]
-l 127.0.0.1
# line 38 : max connections (default is 1024)
# -c 1024
root@dlp:~# systemctl restart memcached

Sử dụng cơ bản của Memcached

Dưới đây là cách sử dụng cơ bản của Memcached khi kết nối thông qua Telnet client.

[1] Cài đặt Telnet client.

root@dlp:~# apt -y install telnet

[2] Các thao tác cơ bản với Memcached như sau:

# connect to local Memcached
root@dlp:~# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.

# show status of Memcached
stats
STAT pid 960
STAT uptime 165
STAT time 1689737897
STAT version 1.6.18
STAT libevent 2.1.12-stable
STAT pointer_size 64
STAT rusage_user 0.020438
STAT rusage_system 0.013625
STAT max_connections 1024
STAT curr_connections 1
STAT total_connections 2
STAT rejected_connections 0

.....
.....

STAT moves_within_lru 0
STAT direct_reclaims 0
STAT lru_bumps_dropped 0
END

# save data (on memory)
# set [Key] [Flag] [Validity Term(sec)] [Data Size(byte)]
# Flag : 0=compression off, 1=compression on
# Validity Term=0 means indefinite
# after inputting command above, input a Value of the Key
set test_key 0 0 10
test_value
STORED

# refer to Value of a Key
get test_key
VALUE test_key 0 10
test_value
END

# replace Value of a Key
replace test_key 0 0 11
test_value2
STORED
get test_key
VALUE test_key 0 11
test_value2
END

# append Value of a Key
append test_key 0 0 5
,test
STORED
get test_key
VALUE test_key 0 16
test_value2,test
END

# prepend Value of a Key
prepend test_key 0 0 6
test1,
STORED
get test_key
VALUE test_key 0 22
test1,test_value2,test
END

# delete a Key
delete test_key
DELETED

# increment Value of a Key
set mycounter 0 0 1
1
STORED
incr mycounter 1
2
get mycounter
VALUE mycounter 0 1
2
END

# decrement Value of a Key
decr mycounter 1
1
get mycounter
VALUE mycounter 0 1
1
END

# delete all caching data on memory
flush_all
OK

# exit
quit

Để thực hiện hoạt động CAS (Check And Set), bạn có thể sử dụng lệnh [cas] như sau:

# refer to Value with CAS ID
# on the example below, CAS ID = 9
gets test_key
VALUE test_key 0 10 9
test_value
END

# update data with cas command
# cas [Key] [Flag] [validity term(sec)] [data size(byte)] [CAS ID]
cas test_key 0 0 11 9
test2_value
STORED
gets test_key
VALUE test_key 0 11 10
test2_value
END

Các ví dụ sử dụng Memcached

Sử dụng Memcached trên Python:

[1] Cài đặt Thư viện Python Memcached Client.

root@dlp:~# apt -y install python3-memcache

[2] Cách sử dụng cơ bản

debian@dlp:~$ vi use_memcache.py
import memcache

client = memcache.Client(["127.0.0.1:11211"], cache_cas=True)

# set and get a Key
client.set("key01", "value01")
print("key01.value :", client.get("key01"))

# append and get a Key
client.append("key01", ",value02")
print("key01.value :", client.get("key01"))

client.set("key02", 1)

# increment
client.incr("key02", 100)
print("key02.value :", client.get("key02"))

# decrement
client.decr("key02", 51)
print("key02.value :", client.get("key02"))

# CAS
client.set("key03", "value03")
print("key03.value :", client.gets("key03"))
client.cas("key03", "value04")
print("key03.value :", client.gets("key03"))

# run
debian@dlp:~$ python3 use_memcache.py
key01.value : value01
key01.value : value01,value02
key02.value : 101
key02.value : 50
key03.value : value03
key03.value : value04

Sử dụng Memcached trên PHP:

1. Cài đặt Module PHP Memcached Client.

root@dlp:~# apt -y install php-memcached

2.Cách sử dụng cơ bản

debian@dlp:~$ vi use_memcache.php
<?php
$memcache = new Memcached();
$memcache->addServer('localhost', 11211);
$memcache->setOption(Memcached::OPT_COMPRESSION, false);

// set and get a Key
$memcache->set('key01', 'value01');
print 'key01.value : ' . $memcache->get('key01') . "\n";

// append and get a Key
$memcache->append('key01', ',value02');
print 'key01.value : ' . $memcache->get('key01') . "\n";

$memcache->set('key02', 1);
print 'key02.value : ' . $memcache->get('key02') . "\n";

// increment
$memcache->increment('key02', 100);
print 'key02.value : ' . $memcache->get('key02') . "\n";

// decrement
$memcache->decrement('key02', 51);
print 'key02.value : ' . $memcache->get('key02') . "\n";

?>

# run
debian@dlp:~$ php use_memcache.php
key01.value : value01
key01.value : value01,value02
key02.value : 1
key02.value : 101
key02.value : 50

Sử dụng Memcached trên Perl:

1. Sử dụng Memcached trên Perl.

root@dlp:~# apt -y install libcache-memcached-perl

2. Cài đặt Module Perl Memcached Client.

debian@dlp:~$ vi use_memcache.pl
use strict;
use Cache::Memcached;

my $memcached = Cache::Memcached->new({
servers => ["127.0.0.1:11211"]
});

# set and get a Key
$memcached->set('key01', 'value01');
print "key01.value : " . $memcached->get('key01') . "\n";

# append and get a Key
$memcached->append('key01', ',value02');
print "key01.value : " . $memcached->get('key01') . "\n";

$memcached->set('key02', 1);
print "key02.value : " . $memcached->get('key02') . "\n";

# increment
$memcached->incr('key02', 100);
print "key02.value : " . $memcached->get('key02') . "\n";

# decrement
$memcached->decr('key02', 51);
print "key02.value : " . $memcached->get('key02') . "\n";

# run
debian@dlp:~$ perl use_memcache.pl
key01.value : value01
key01.value : value01,value02
key02.value : 1
key02.value : 101
key02.value : 50

Các ví dụ trên giúp bạn làm quen với việc sử dụng Memcached trong các ngôn ngữ lập trình khác nhau và cách thực hiện các hoạt động cơ bản với Memcached.

Trong bài viết này, chúng ta đã thực hiện một hành trình để install và cấu hình Memcached trên hệ điều hành Debian 12. Bằng cách tận dụng khả năng của Memcached, bạn đã học cách tăng cường hiệu suất ứng dụng của mình thông qua việc lưu trữ dữ liệu cache tạm thời và giảm tải cho máy chủ cơ sở dữ liệu. Qua việc sử dụng Memcached, bạn có thể cải thiện thời gian đáp ứng của ứng dụng và cung cấp trải nghiệm tốt hơn cho người dùng. Chúng ta hy vọng rằng bài viết này đã giúp bạn có cái nhìn rõ ràng hơn về cách sử dụng Memcached trong việc tối ưu hóa ứng dụng của mình.