Valmat personal instalare blog redis via t

Cum să instalați Redis ca server pe Linux și să îl accesați prin Unix.socket

De la rue face
mkdir / usr / src / redis
cd / usr / src / redis

Dacă testele au trecut în mod normal (ar trebui să scrie ceva de genul: "\ o / Toate testele au trecut fără erori!"), Apoi treceți

mv. /redis-2.4.4.tar.gz ./redis-2.4.4.tar.gz

cp src / redis-server / usr / local / bin /
cp src / redis-cli / usr / local / bin /

mkdir / etc / redis
mkdir / var / redis

Pe lângă docul este invitat la „utils CP / /etc/init.d/redis_6379 redis_init_script“, în cazul în care 6379 - numărul de port implicit, dar eu sunt de planificare, care Redis va lucra pentru mine prin unix.socket,
prin urmare, va fi așa (peste tot sub zero apare pentru exact același motiv):

cp utils / redis_init_script /etc/init.d/redis_0

Acum trebuie să editați configurația:
nano /etc/init.d/redis_0

De fapt, numai numărul portului este supus editării (linia 6):
REDISPORT = 6379 -> REDISPORT = 0
Dacă nu modificați numărul portului, nu este necesar să modificați nimic.

Dar în cazul meu, din moment ce intenționez să conduc ridiche printr-o priză unix. atunci trebuie să mai faceți câteva modificări:
Adăugarea unei variabile
UNIXSOCK = / tmp / redis.sock
iar expresia '$ CLIEXEC -p $ REDISPORT shutdown' din secțiunea 'stop' este înlocuită cu '$ CLIEXEC -s $ UNIXSOCK shutdown'


Iată ce sa întâmplat:

Apoi, trebuie să copiați fișierul config:
cp redis.conf /etc/redis/0.conf
Și editați-l:
nano /etc/redis/0.conf
În acesta modificăm următoarele:

#demonizați nr
Daemonizați da

#pidfile /var/run/redis.pid
pidfile /var/run/redis_0.pid

#port 6379
port 0

Pentru mine, nu pare a fi relevantă, dar, doar în caz, am decomprimat linia
lega 127.0.0.1

De asemenea, raskommentil
unixsocket /tmp/redis.sock
unixsocketperm 755

#loglevel verbose
avertizare Loglevel

#logfile stdout
logfile /var/log/redis_0.log

#database 16
baze de date 1

În secțiunea "SNAPSHOTTING", puteți modifica strategia de depozitare. Am facut acest lucru:

salvați 54000 10
salvați 3600 5000

dir / var / redis / haldele /
dbfilename dump_0.rdb

Din moment ce nu-mi voi vedea reșeaua în rețea, am dezactivat replicarea în ea (secțiunea "REPLICARE"):

# slave-serve-stale-data da
slave-serve-stale-date nr

Mai mult, din moment ce, după cum se menționează în config, am folosit pentru a dezbrac ridichi nu sunt ca bază de date primară, și ca o memorie cache, este necesar să se stabilească maxmemory, care ar evita ridiche fi mâncat toată memorie:
# 256 MB
maxmemory 268435456

Din moment ce este instalat maxmemory, trebuie să instalați și politica maxmemory

# maxmemory-policy volatile-lru
maxmemory-policy volatile-ttl

Am ales volatile-ttl pentru că nu știu cum funcționează algoritmul LRU

Dezactivați appendfsync
appendfsync nr

Totul în această editare este complet.
Pentru jurnale, am specificat directorul / var / redis / dumps. Nu trebuie să uitați să o creați:

Verificați dacă funcționează totul. Puteți verifica astfel:
lansare
/etc/init.d/redis_0 începe
atunci
redis-cli -s /tmp/redis.sock
redis 127.0.0.1:6379> SET key1 "Test"
în regulă
redis 127.0.0.1:6379> GET key1
"Test"
redis 127.0.0.1:6379>

Dacă totul este bine, atunci adăugăm la pornire:

update-rc.d redis_0 implicit

Din moment ce sunt gata să mă măsoară cu faptul că nu se va dărâma pe disc, voi ignora acest avertisment.
În general, văd soluția după cum urmează:
În /etc/sysctl.conf nu facem nimic natural, dar în /etc/init.d/redis_0
În secțiunea de început, înainte de a începe ridichea, salvăm valoarea sistemului overcommit_memory
touch / tmp / overcommit_memory_bfr_redis
chmod 0600 / tmp / overcommit_memory_bfr_redis
cat / proc / sys / vm / overcommit_memory> / tmp / overcommit_memory_bfr_redis
sysctl vm.overcommit_memory = 1
Și în secțiunea de oprire, vom returna valoarea sistemului:
OCMSYS = $ (cat / tmp / overcommit_memory_bfr_redis)
sysctl vm.overcommit_memory = $ OCMSYS


PPS overcommit_memory afectează alocarea memoriei de către kernel și Killer OOM. vm.overcommit_memory = 0 - opțiune mai sigură, deoarece cine știe cine va prăbuși OOM Killer, dacă memoria se termină.
PPPS Dacă mufa tcp se potrivește, dar are nevoie numai de (este posibil să specificați un port), atunci în directorul utils cu surse există un script install_server.sh, lansarea căruia va profita la maximum de munca murdară descrisă mai sus.

Articole similare