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.