Redis -NoSQL database

Revision as of 19:34, 6 November 2016 by Adam (talk | contribs) (Redis monitorozása)

Revision as of 19:34, 6 November 2016 by Adam (talk | contribs) (Redis monitorozása)

ClipCapIt-161106-201924.PNG

Contents

Bemutatás

A Radius egy memória alapú adatstruktúra adatbázis. Nagyon sokféle struktúrát támogat, nem csak string-eket. (Set, Map, Hash, List). Az elosztott működést is támogatja, és képes lemezre menteni a memória cache tartalmat.

Telepítés

A redis az EPEL repozitoriban van benne, ezt hozzá kell adjuk a YUM-hoz ha még nem lenne benne:

# wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm


Majd telepítsük föl a redis-t.

# yum install redis


Létrejött fájlok:

  • /etc/redis.conf: A redis központi konfigurációs fájlja, mi is ebben fogjuk a szükséges konfigurációt elvégezni.
  • /etc/redis-sentinel.conf: A redis központi monitorozó eszköze. Figyeli az esetlegesen fellépő hibákat, és megpróbál automatikusan beavatkozni.
  • /var/log/redis: Log fájl helye
  • /etc/logrotate.d/redis: A logrotate-thez is hozzáadta a telepítő a szükséges konfigurációt.
  • /var/lib/redis: Ide fogja kiírni a redis a memóriában összegyűlt adatbázist a konfigurációban meghatározott gyakorisággal.

Konfiguráció

Hálózati beállítások

Amennyiben lehetséges, a NETWORK állítsuk be, hogy a redis csak a lokális hálózaton hallgatózzon és csak egy porton biztonsági megfontolásból.

bind 127.0.0.1
port 6379


Memória használat

Mivel cache-ként szeretnénk használni a redis-t, és nem adatbázisként, maximálni fogjuk, hogy mennyi memóriát használhat el a rendszermemóriából, mivel nem történik tragédia, ha egy új cache bejegyzés már nem fér bele a memóriába.

http://redis.io/topics/lru-cache

A LIMITS szekcióban állítsuk be, hogy mennyi memóriát használhat maximálisan a redis, és hogy mit tegyen, milyen policy-t alkalmazzon, ha már nincs szabad hely. 6 féle memória kezelési stratégia közül választhatunk. Mi a allkeys-lru stratégiát fogjuk használni, ami egy algoritmus alapján megkeresi a legkevésbé használt kulcsokat, és azokat kitörli. A többi stratégiával ellentétben ez mindig kitöröl egy kulcsot, ha a memória már megtelt és új INSERT kérés érkezik.

maxmemory 5GB
maxmemory-policy allkeys-lru

Adatbázis mentése

A memóriában lévő adatbázis mentésével kapcsolatos beállítások a SNAPSHOTTING szekcióban vannak a redis.conf fájlban. A save paraméterrel adhatjuk meg hogy hány másodperc és hány módosítás elteltével írja ki lemezre a memória cache tartalmát a redis:

save 900 1
save 300 10
save 60 10000

Mind két paraméternek teljesülnie kell, tehát az első esetben 900 másodperc és legalább 1 módosítás után lementi a cache-t lemezre.

Az adatbázis fájl neve és helye:

dbfilename dump.rdb
dir /var/lib/redis/

Próbáljuk ki. Adjuk ki a redis-cli parancssori eszköznek a save parancsot, ekkor ki kell hogy írja a memória tartalmát a lemezre:

# redis-cli save
OK

Láthatjuk, hogy a /var/lib/redis/ mappában a dump.rdb dátuma frissült:

# ll /var/lib/redis
-rw-r--r--. 1 redis redis 4894 Nov  6 18:24 dump.rdb

Indítás

# service redis start
# chkconfig redis on

Redis monitorozása

A redis szerverek monitorozására a redis-sentinel program szolgál, ami feltelepült a redis yum installációjával együtt.

A /etc/redis-sentinel.conf fájlban található alap beállítások megfelelőek. A localhost-on a 6379-es porton fog csatlakozni a redesi szerverhez.

sentinel monitor mymaster 127.0.0.1 6379 2

Webes admin felület (phpRedisAdmin)

Nagyon sok féle Redis grafikus admin eszköz létezik, ezek között vannak desktop alkalmazások és különféle webes eszközök. Mi egy nagyon egyszerű, és elterjedt webes GUI-t fogunk használni a phpRedisAdmin-t.

A phpRedisAdmin-t git-böl lehet letölteni két lépésben. Lépjünk bele abba appache által látott mappába, ahova a phpRedisAdmin-t telepíteni szeretnénk, majd az alábbi két git repót kell klónozzuk:

# cd /var/www/virtual/admin
# git clone https://github.com/ErikDubbelboer/phpRedisAdmin.git
# cd phpRedisAdmin
# git clone https://github.com/nrk/predis.git vendor

Nevezzük át a sample konfigurációs fájlt:

# cp includes/config.sample.inc.php includes/config.inc.php


ClipCapIt-161106-185704.PNG



Backup és resotre