Memcached ist ein freier unter der BDS-Lizenz veröffentlichter Cache-Server. Er findet meist bei verschiedenen Webseiten-Projekten Verwendung um Datenbankabfragen zwischenzuspeichern oder andere Inhalte temporär abzlegen. Es ist zu beachten, dass die Speicherung der Daten ausschliesslich im RAM stattfindet. Hier gilt dann die alte Regel „Strom weg – Daten weg!“. Das hat aber auch den Vorteil, dass die Zugriffe auf die Daten von Memcached sehr sehr schnell erfolgen weil bei einer Anfrage an den Cache keine Festplatten- oder Datenbankzugriffe nötig sind da die Daten vollständig im Arbeitsspeicher vorgehalten werden.
Installation von Memcached unter CentOS 7
Die Installation von Memcached unter CentOS 7 ist wie gewohnt sehr einfach. Memcached wir mit yum aus dem Repository installiert.
yum install memcached
Nötige Abhängigkeiten werden dabei gleich mitinstalliert.
Abhängigkeiten werden aufgelöst --> Transaktionsprüfung wird ausgeführt ---> Paket memcached.x86_64 0:1.4.15-9.el7 markiert, um installiert zu werden --> Abhängigkeit libevent-2.0.so.5()(64bit) wird für Paket memcached-1.4.15-9.el7.x86_64 verarbeitet --> Transaktionsprüfung wird ausgeführt ---> Paket libevent.x86_64 0:2.0.21-4.el7 markiert, um installiert zu werden --> Abhängigkeitsauflösung beendet Abhängigkeiten aufgelöst ========================================================================================================================== Package Arch Version Paketquelle Größe ========================================================================================================================== Installieren: memcached x86_64 1.4.15-9.el7 base 84 k ... Als Abhängigkeiten installiert: libevent x86_64 2.0.21-4.el7 base 214 k Transaktionsübersicht ========================================================================================================================== Installieren 1 Paket (+1 Abhängiges Paket) Gesamte Downloadgröße: 298 k Installationsgröße: 897 k Is this ok [y/d/N]:
Wir starten nun Memcached und sogen dafür, dass der Dienst beim Systemstart automatisch startet.
systemctl start memcached.service
systemctl enable memcached.service
Das war es auch schon. Memcached steht uns nun auf Port 11211 zur Verfügung.
Konfiguration von Memcached unter CentOS 7
Wir können Memcached nun noch an unsere Anforderungen anpassen. Dazu editieren wir der Datei /etc/sysconfig/memcached und tragen dort unsere Wunschwerte ein.
vi /etc/sysconfig/memcached
PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS=""
Der Parameter CACHESIZE bestimmt die Größe des Caches im RAM und sollte daher sinnvoll in Abstimmung auf das System konfiguriert werden.
Sofern wir keine Firewall laufen haben nimmt Memcached Anfagen von allen IPs an. Um den Zugriff auf lokal zu beschränken ändern wir noch folgende Zeile in /etc/sysconfig/memcached.
OPTIONS=""
in
OPTIONS="-l 127.0.0.1"
Nun lauscht Memcached nur noch nach Intern und nimmt keine Anfragen mehr von Extern an.
Anschliessen müssen wir den Dienst noch neu starten, damit unsere Konfigurationen wirksam werden.
systemctl restart memcached.service
Testen von Memcached
Zum Testen rufen wir einfach einmal die Statistik mit memcached-tool ab.
memcached-tool 127.0.0.1 stats #127.0.0.1:11211 Field Value accepting_conns 1 auth_cmds 0 auth_errors 0 bytes 0 bytes_read 33 bytes_written 54 cas_badval 0 cas_hits 0 cas_misses 0 cmd_flush 0 cmd_get 0 cmd_set 0 cmd_touch 0 conn_yields 0 connection_structures 11 curr_connections 10 curr_items 0 decr_hits 0 decr_misses 0 delete_hits 0 delete_misses 0 evicted_unfetched 0 evictions 0 expired_unfetched 0 get_hits 0 get_misses 0 hash_bytes 524288 hash_is_expanding 0 hash_power_level 16 incr_hits 0 incr_misses 0 libevent 2.0.21-stable limit_maxbytes 67108864 listen_disabled_num 0 pid 27256 pointer_size 64 reclaimed 0 reserved_fds 20 rusage_system 0.187291 rusage_user 0.266305 threads 4 time 1415621840 total_connections 12 total_items 0 touch_hits 0 touch_misses 0 uptime 9343 version 1.4.15
Für weitere Infos lohnt wieder ein Blick auf die Homepage von Memcached.
Für die Verwendung von Memcached in Kombination mit PHP oder Python müssen noch die passenden Module installiert werden, z.B. php-pecl-memcache.