멤캐시드

From CS Wiki


Memcached
메인 메모리에 데이터 및 오브젝트를 캐시함으로써 데이터베이스 및 API에서 읽어와야 하는 횟수를 줄일 수 있는 분산 메모리 캐시 시스템

라이센스[edit | edit source]

  • BSD 라이센스

사용 환경[edit | edit source]

  • 유닉스, 리눅스, 윈도우 등의 주요 OS에서 사용 가능

설치[edit | edit source]

패키지가 있는지 확인[edit | edit source]

# command
$ yum list | grep memcached
# command result
libmemcached.i686                      0.31-1.1.el6                     base    
libmemcached.x86_64                    0.31-1.1.el6                     base    
libmemcached-devel.i686                0.31-1.1.el6                     base    
libmemcached-devel.x86_64              0.31-1.1.el6                     base    
memcached.x86_64                       1.4.4-3.el6                      base    
memcached-devel.i686                   1.4.4-3.el6                      base    
memcached-devel.x86_64                 1.4.4-3.el6                      base    
python-memcached.noarch                1.43-6.el6                       base 

패키지 설치[edit | edit source]

# command
$ yum install memcached
# result
==============================================================================================================================
Package                        Arch                        Version                           Repository                 Size
==============================================================================================================================
Installing:
memcached                      x86_64                      1.4.4-3.el6                       base                       68 k
Installing for dependencies:
libevent                       x86_64                      1.4.13-4.el6                      base                       66 k

Transaction Summary
==============================================================================================================================
Install       2 Package(s)

Total download size: 134 k
Installed size: 374 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): libevent-1.4.13-4.el6.x86_64.rpm                                                                |  66 kB     00:00     
(2/2): memcached-1.4.4-3.el6.x86_64.rpm                                                                |  68 kB     00:00     
------------------------------------------------------------------------------------------------------------------------------
Total                                                                                         1.6 MB/s | 134 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
 Installing : libevent-1.4.13-4.el6.x86_64                                                                               1/2 
 Installing : memcached-1.4.4-3.el6.x86_64                                                                               2/2 
 Verifying  : libevent-1.4.13-4.el6.x86_64                                                                               1/2 
 Verifying  : memcached-1.4.4-3.el6.x86_64                                                                               2/2 

Installed:
 memcached.x86_64 0:1.4.4-3.el6                                                                                              

Dependency Installed:
 libevent.x86_64 0:1.4.13-4.el6                                                                                              

Complete!

사용[edit | edit source]

환경 설정[edit | edit source]

# command
$ vi /etc/sysconfig/memcached
# result
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1" # 기본 설정값은 비어있습니다.
  • PORT : memcached가 사용할 포트 지정
  • USER : 만약 root로 실행한다면 이때 사용할 memcached 사용자 이름
  • MAXCONN : 최대 연결할 수 있는 커넥션 개수
  • CACHESIZE : 사용할 메모리를 결정합니다. MB단위
  • OPTIONS : -l 옵션은 바인드 IP 설정. Apache, NginX는 여기 설정된 값으로 연결을 시도
    • 로컬호스트(127.0.0.1)로 지정한 경우 외부 접근 불가

실행/종료 등[edit | edit source]

$ /etc/init.d/memcached start
$ /etc/init.d/memcached restart
$ /etc/init.d/memcached stop
$ /etc/init.d/memcached status
$ memcached-tool
  • /etc/init.d/memcached start 를 실행했을 때 /etc/init.d/memcached: command not found 라는 에러가 난다면 아래와 같이 사용
$ service memcached start
$ service memcached restart
$ service memcached stop
$ service memcached status

자동 실행 등록[edit | edit source]

$ chkconfig --levels 235 memcached on

동작 확인[edit | edit source]

  • 데몬과 포트 리스닝 확인
$ ps -ef | grep memcached # 프로세스가 떠있는지 확인합니다.
$ netstat -an | grep 11211 # 포트가 리슨중인지 확인합니다.
  • 실행 중 데몬의 상세 정보
$ memcached-tool 127.0.0.1 stats