15-12-2011, 05:45 PM
Vũ Thanh Lai
Đầy tớ Nhân Dân
Được cảm ơn 30857 trong 10211 bài viết
Đã viết 23,173 bài thảo luận
5663 lượt xem
Bài được đánh giá cao
#1
Hướng dẫn cài memcached trên server Linux (Centos 5)
Memcached là 1 trình tạo bộ đệm hiệu suất cao, chủ yếu được sử dụng để tăng tốc độ các trang web sử dụng cơ sở dữ liệu. Tuy nhiên, memcached có thể được sử dụng để lưu trữ tất cả các đối tượng khác.
Gần như tất cả CMS phổ biến đều có một plugin hoặc mô-đun để tận dụng lợi thế của nó, và nhiều ngôn ngữ lập trình có một thư viện memcached, bao gồm PHP, Perl, Ruby và Python.
Memcached chạy trong bộ nhớ và không cần phải ghi vào đĩa cứng, vì vậy nó truy xuất vô cùng nhanh.
(vBulletin cũng hỗ trợ memcached, các bạn có thể cấu hình sử dụng trong file includes/config.php
)
Hiện nay, chúng ta có thể điểm qua 1 số website lớn đang dùng memcached là youtube.com, facebook.com...
Hôm nay mình sẽ hướng dẫn các bạn cài memcached trên CentOS 5.
Đầu tiên bạn phải cài libevent; Phiên bản tổi thiểu có thể cài là1.1. Bạn có thể cài dễ dàng bằng lệnh yum.
Code:
yum install libevent libevent-devel
Sau đó, bạn vào thư mục /usr/local/src và down về mã nguồn memcached:
Code:
cd /usr/local/src
wget http://memcached.googlecode.com/files/memcached-1.4.1.tar.gz
Giải nèn file vừa down về rồi vào thư mục vừa giải nén:
Code:
tar xvzf memcached-1.4.1.tar.gz
cd memcached-1.4.1
Memcached vẫn được phát triển. Vào thời điểm này, 1.4.1 là phiên bản mới nhất được đánh giá là ổn định. Bạn có thể vào link sau:
http://code.google.com/p/memcached/downloads/list để xem có phiên bản ổn định mới hơn hay không.
Tiếp theo, chúng ta sẽ cấu hình tiền biên dịch bằng lệnh sau:
Nếu server bạn đang chạy hệ điều hành 64bit, bạn có thể bật cờ sau để memcached cấu hình với máy 64bit giúp cải thiện hiệu suất tối đa với hệ thống 64bit:
Code:
./configure --enable-64bit
Nếu CPU server đang sử dụng có nhiều nhân(Core) bạn có thể bật cờ sau để tận dụng tối đa hiệu suất các CPU cho memcached:
Code:
./configure --enable-threads
Bạn có thể gộp chung 2 lệnh trên thành 1 lệnh như sau nếu server của bạn có cả 2 yếu tố trên:
Code:
./configure --enable-threads --enable-64bit
Sau khi quá trình cấu hình hoàn tất,chúng ta có thể biên dịch mã nguồn và cài đặt bằng lệnh sau:
Code:
make && make install
Cuối cùng, chúng ta có thể bắt đầu start memcached server bằng lệnh sau:
Code:
memcached -d -u nobody -m 512 -p 11111 127.0.0.1
Cấu trúc lệnh như sau:
Code:
memcached -d -u [user] -m [memory size] -p [port]
[listening IP]
Dưới đây là ý nghĩa các tham số:
-d
Muốn nói rằng memcached sẽ chạy dưới dạng 1 deamon service(Dịch vụ nền)
-u
Chỉ ra rằng user nào sẽ đc memcached dùng để truy xuất vào hệ thống
-m
Thiếtlập kích thước bộ nhớ memcached sẽ sử dụng
-p
Cổng (Port) mà mamcached sẽ dùng để lắng nghe.
Lưu ý:
- Nếu server bạn đang chạy 1 số dịch vụ khác như apache,nginx ... thì sau khi khởi động memcached thì bạn hãy restart lại các dịch vụ này luôn
- Nếu bạn muốn ngưng memcached thì có thể dùng cách sau:
Code:
ps -A|grep memcached
Bạn sẽ thấy kết quả dạng như sau:
Code:
7034 ? 00:00:00 memcached
7035 ? 00:00:00 memcached
Đây là sanh sách các tiến trình của memcached, chúng ta sẽ kill chúng bằng lệnh sau
Code:
kill 7034
kill 7035
Sau khi kill hết, ta có thể start lại memcached bằng lệnh
Code:
memcached -d -u nobody -m 512 -p 11211 127.0.0.1
- Muốn kiểm tra memcached đã chạy chưa thì ta có thể dùng lệnh
Code:
ps -A|grep memcached
Nếu xuất hiện danh sách tiến trình của memcached tức là memcached đã chạy
Chúc các bạn thành công !
Bài viết chỉ post trên sinhvienit.net, copy đi đâu vui lòng ghi rõ nguồn 
http://sinhvienit.net/forum/huong-da...-5.163979.html
Thay đổi nội dung bởi: Friend, 02-01-2012 lúc 12:49 AM
Chủ đề mới cùng chuyên mục
15-12-2011, 05:56 PM
hieponline21
Thành Viên SVIT
Được cảm ơn 64 trong 42 bài viết
Đã viết 519 bài thảo luận
#2
Hướng dẫn cài memcached trên server Linux (Centos 5)
cảm ơn anh lai,kiếm đâu ra cái vps test thử nhỉ..
vanhiep.net
16-12-2011, 10:18 PM
Chao
Thành Viên SVIT
Được cảm ơn 11 trong 7 bài viết
Đã viết 67 bài thảo luận
#3
Hướng dẫn cài memcached trên server Linux (Centos 5)
anh lai biết cài thằng này với litespeed ko anh
16-12-2011, 10:23 PM
Vũ Thanh Lai
Đầy tớ Nhân Dân
Được cảm ơn 30857 trong 10211 bài viết
Đã viết 23,173 bài thảo luận
#4
Hướng dẫn cài memcached trên server Linux (Centos 5)

Nguyên văn bởi
Chao
anh lai biết cài thằng này với litespeed ko anh

Cái này không liên quan gì với litespeed cả nên cứ cài bình thường.
VD: Firefox với Yahoo message, cái nào cái ao cũng chả ảnh hưởng đến cái kia
17-12-2011, 01:25 PM
Chao
Thành Viên SVIT
Được cảm ơn 11 trong 7 bài viết
Đã viết 67 bài thảo luận
#5
Hướng dẫn cài memcached trên server Linux (Centos 5)
Nhưng theo em đọc được là memcached phải được compile với PHP thì nó mới hoạt động.
17-12-2011, 01:50 PM
Vũ Thanh Lai
Đầy tớ Nhân Dân
Được cảm ơn 30857 trong 10211 bài viết
Đã viết 23,173 bài thảo luận
#6
Hướng dẫn cài memcached trên server Linux (Centos 5)

Nguyên văn bởi
Chao
Nhưng theo em đọc được là memcached phải được compile với PHP thì nó mới hoạt động.
Chắc Ko ai nói đâu, mà do bạn hiểu sai vấn đề mà thôi.
Như mình đã đề cập trong bài viết, 1 số ngôn ngữ có cả thư viện về memcached như: php, python,ruby. Khi bạn code php bạn muốn sử dụng đc memcached thì bạn phải cài thư viện memcached kèm theo PHP.
Giống như thế này, mysql là 1 hệ quản trị CSDL, bạn muốn dùng đc mysql thì khi cài php bạn phải cài kèm module mysql. Không thì bạn sẽ ko dùng đc. Bản chất mysql có thể cài ở 1 server khác và bạn có thể connect đến nó. Nhưng như đã nói, khi dùng php mà bạn muốn dùng mysql thì bạn phải cài module mysql cho php. Memcached cũng vậy, bản chất nó có thể đc cài ở 1 server khác để lưu cached, nhưng ở đây do ko có nhiều server như facebook, google nên mình hướng dẫn cài luôn trên server chạy web.
Bạn đã thấy đc sự độc lập chưa ? Nếu bạn ko cài memcached trên server chạy web cũng chả sao, thì chẳng có lý do gì nó ảnh hưởng tới cái litespeed cả.
Bạn cũng cần phải phân biệt litespeed hay apache cũng chả liên quan gì tới php cả. Chẳng qua 2 cái này là web server, muốn nó biên dịch đc php thì phải cài php trên máy chạy web server và cài module php cho litespeed hoặc apache để nó làm việc đc với php
17-12-2011, 01:55 PM
Vũ Thanh Lai
Đầy tớ Nhân Dân
Được cảm ơn 30857 trong 10211 bài viết
Đã viết 23,173 bài thảo luận
#7
Hướng dẫn cài memcached trên server Linux (Centos 5)

Vẽ cho bạn cái mô hình
17-12-2011, 02:35 PM
minhkien
Thành Viên SVIT
Được cảm ơn 1 trong 1 bài viết
Đã viết 6 bài thảo luận
#8
Hướng dẫn cài memcached trên server Linux (Centos 5)
Bạn Vũ Thanh Lai ơi.! Mình đang gặp chút vấn để với Joomla. Bạn có thể giúp Mình được không.
Y!M của Mình là minhkien32
Rất mong được sự giúp đỡ từ Bạn.
Cảm ơn Bạn nhiều.!
Thân.!
17-12-2011, 10:45 PM
Chao
Thành Viên SVIT
Được cảm ơn 11 trong 7 bài viết
Đã viết 67 bài thảo luận
#9
Hướng dẫn cài memcached trên server Linux (Centos 5)
anh cho em hỏi là làm sao để memcached tự chạy khi khởi động lại server.
18-12-2011, 09:24 AM
Chao
Thành Viên SVIT
Được cảm ơn 11 trong 7 bài viết
Đã viết 67 bài thảo luận
#10
Hướng dẫn cài memcached trên server Linux (Centos 5)
Anh Lai thêm phần này ở trên để tự cho nó boot lúc start.
1. Tạo file /etc/init.d/memcached với nội dung (ở đây mình dùng lệnh nano)
Code:
nano /etc/init.d/memcached
2. Pass nôi dung bên dưới vào
Code:
#!/bin/bash
#
# Init file for memcached
#
# Written by Dag Wieërs <dag@wieers.com>
#
# chkconfig: - 80 12
# description: Distributed memory caching daemon
#
# processname: memcached
# config: /etc/sysconfig/memcached
# config: /etc/memcached.conf
source /etc/rc.d/init.d/functions
### Read configuration
#[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"
FILES=(/etc/sysconfig/memcached_*);
# check for alternative config schema
if [ -r "${FILES[0]}" ]; then
CONFIGS=();
for FILE in "${FILES[@]}";
do
# remove prefix
#echo "${FILE} ==> file"
NAME=${FILE#/etc/sysconfig/};
# check optional second param
if [ $# -ne 2 ];
then
# add to config array
CONFIGS+=($NAME);
elif [ "$2" == "$NAME" ];
then
# use only one memcached
CONFIGS=($NAME);
break;
fi;
done;
if [ ${#CONFIGS[@]} == 0 ];
then
echo "Config not exist for: $2" >&2;
exit 1;
fi;
else
CONFIGS=(memcached);
fi;
CONFIG_NUM=${#CONFIGS[@]};
for ((i=0; i < $CONFIG_NUM; i++)); do
NAME=${CONFIGS[${i}]};
PIDFILE="/var/run/memcached/${NAME}.pid";
#echo "LOOP \"$CONFIG_NUM\""
#echo "config ==> ${NAME}"
#echo "$PIDFILE ==> PID"
##
RETVAL=0
#prog="memcached"
prog="${NAME}"
source "/etc/sysconfig/${NAME}"
desc="Distributed memory caching"
start() {
echo -n $"Starting $desc (${NAME}): "
daemon --pidfile $PIDFILE /usr/local/bin/memcached -P $PIDFILE -d -p $PORT -u $USER -c $MAXCONN -m $CACHESIZE $OPTIONS
#echo " $prog -d -p $PORT -U $PORT -u $USER -c $MAXCONN -m $CACHESIZE $OPTIONS"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $"Shutting down $desc ($prog): "
echo "$PIDFILE"
killproc -p $PIDFILE memcached
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}
restart() {
stop
start
}
reload() {
echo -n $"Reloading $desc ($prog): "
killproc $prog -HUP
RETVAL=$?
echo
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
[ -e /var/lock/subsys/$prog ] && restart
RETVAL=$?
;;
reload)
reload
;;
status)
status -p $PIDFILE $prog
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
RETVAL=1
esac
##$RETVAL
done;
3. CHMOD 775
Code:
chmod 755 /etc/init.d/memcached
4. Tạo 1 file trong /etc/sysconfig/ với tên là memcached_PORT (có thể tạo nhiều file nếu có nhiều server khác nhau)
VD mình tạo file memcached_11211
Code:
PORT="11211"
USER="nobody"
MAXCONN="2048"
CACHESIZE="64"
OPTIONS=""
Ở đây bạn có thể đổi port, user , maxconn, cachesize, option.
5. Tạo thư mục giữ file memcache PID
Code:
# mkdir /var/run/memcached
# chmod 755 /var/run/memcached
# chown nobody:nobody /var/run/memcached
6. Đưa memcached vào startup khi máy khởi động.
Code:
chkconfig --level 345 memcached on
Mọi thứ đã xong. 
Command của script nè
Code:
service memcached start // khởi động toàn bộ memcached
service memcached start memcached_11211 // chỉ khởi động memcached ở sever port 11211
Tương tự thế với Stop và Restart