Redis izmantošana Linux serverī, instalējiet to, izmantojot savu pakotni manager, iespējojiet pakalpojumu sāknēšanas laikā, nodrošiniet piekļuvi (saistīšana, ugunsmūris, parole/ACL, TLS), konfigurējiet saglabāšanas iespējas un atmiņas izlikšanu redis.conf failā un izveidojiet savienojumu, izmantojot redis click vai savas lietotnes klientu.
Šajā rokasgrāmatā soli pa solim ir parādīta instalēšana, konfigurēšana, regulēšana un WordPress kešatmiņa. Ja vēlaties uzzināt, kā droši un uzticami izmantot Redis Linux serveru vidēs, esat īstajā vietā.
Tālāk es apskatīšu instalēšanu populāros distribūcijās, ražošanas līmeņa konfigurēšanu, veiktspējas uzlabošanu, uzraudzību un to, kā integrēt Redis ar WordPress un citām lietotnēm, izmantojot labāko praksi, ko katru dienu piemēroju reālos serveros.
Kas ir Redis un kāpēc to lietot?
Redis ir atmiņā esoša datu krātuve, kas pazīstama ar savu ārkārtējo ātrumu un zemu latentumu. To plaši izmanto kā kešatmiņu, ziņojumu starpnieku, sesiju krātuvi, ātruma ierobežotāju un uzdevumu rindas aizmugursistēmu.
Linux serveros Redis var paātrināt tīmekļa lietotnes, API un datubāzes (piemēram, MySQL/PostgreSQL), pārslogojot bieži piekļūtos datus ar RAM.
Priekšnosacījumi un ātrais kontrolsaraksts
- Linux serveris ar sudo/root piekļuvi (Ubuntu/Debian, Rocky/Alma/RHEL vai līdzīgs)
- atvērtsSSH piekļuve un termināls
- Ugunsmūra kontrole (UFW vai firewalld)
- Pamata izpratne par konfigurācijas failu rediģēšana (redis.conf)
- Pēc izvēles: domēns/SSL sertifikāti, ja attālinātai piekļuvei ir iespējots TLS
Redis instalēšana operētājsistēmā Linux
Ubuntu/Debian (APT)
Ubuntu 20.04+ un Debian 11+ savos repozitorijos ir iekļauts stabils Redis. Vairumam lietošanas gadījumu ar to pietiek.
sudo apt update
sudo apt install -y redis-server
redis-server --versionUbuntu vidē pakalpojuma nosaukums parasti ir redis-server. Debian var izmantot tādu pašu nosaukumu. Noklusējuma konfigurācija atrodas failā /etc/redis/redis.conf.
RHEL/CentOS/Rocky/Alma (YUM/DNF)
RHEL saimes distribucijās instalējiet, izmantojot EPEL vai distribūcijas Redis pakotni.
# Enable EPEL if needed
sudo dnf install -y epel-release || sudo yum install -y epel-release
# Install Redis
sudo dnf install -y redis || sudo yum install -y redis
redis-server --versionKonfigurācijas fails parasti atrodas failā /etc/redis/redis.conf, un pakalpojuma nosaukums ir redis.
Veidot no avota (pēc izvēles)
Ja jums ir nepieciešamas jaunākās funkcijas (piemēram, jaunākie uzlabojumi, moduļi, kas saistīti ar izlikšanu), kompilējiet Redis no avota koda. Tas ir izplatīts process, kurā liela nozīme ir veiktspējai.
sudo apt update && sudo apt install -y build-essential tcl wget
# or: sudo dnf groupinstall -y "Development Tools"; sudo dnf install -y tcl wget
wget http://download.redis.io/redis-stable.tar.gz
tar xzf redis-stable.tar.gz
cd redis-stable
make
sudo make install
# Optional test
make testPēc tam izveidojiet systemd pakalpojumu vai izmantojiet nodrošinātās utilītprogrammas, lai iestatītu direktorijus un redis.conf failu. Lielākajai daļai administratoru distro pakotnes pēc noklusējuma ir vienkāršākas un drošākas.
Redis palaišana, iespējošana un pārbaude
# Start and enable on boot
sudo systemctl enable --now redis-server # Ubuntu/Debian
# or
sudo systemctl enable --now redis # RHEL/Rocky/Alma
# Check status
systemctl status redis-server || systemctl status redis
# Quick test (local)
redis-cli ping
# Output: PONGPēc noklusējuma Redis lokālai piekļuvei piesaista 127.0.0.1. Tas ir droši viena servera lietotnēm, tostarp WordPress tajā pašā mitinātājā.
Droša Redis darbība ražošanas vidē
Nekad neatveriet Redis piekļuvi publiskajam internetam bez stingras kontroles. Vismaz izmantojiet tikai lokālu piekļuvi, spēcīgu autentifikāciju, ugunsmūra noteikumus un (ja nepieciešams) TLS attāliem klientiem.
Saistīšana, aizsargātais režīms, parole un ACL
Rediģējiet /etc/redis/redis.conf (ceļš var atšķirties) un pārskatiet šīs direktīvas:
bind 127.0.0.1 ::1
protected-mode yes
# Require authentication (strong passphrase)
requirepass <STRONG_UNIQUE_PASSWORD>
# Optional: fine-grained ACLs (Redis 6+)
# aclfile /etc/redis/users.aclPēc izmaiņu veikšanas restartējiet Redis:
sudo systemctl restart redis-server || sudo systemctl restart redisTLS šifrēšana attālinātai piekļuvei
Ja klienti izveido savienojumu no citiem serveriem, iespējojiet TLS. Ģenerējiet vai nodrošiniet sertifikātus un pēc tam atjauniniet redis.conf failu:
# Disable non-TLS port if you want TLS-only
port 0
tls-port 6379
tls-cert-file /etc/redis/ssl/redis.crt
tls-key-file /etc/redis/ssl/redis.key
tls-ca-cert-file /etc/redis/ssl/ca.crt
tls-auth-clients yesKlientiem ir jāatbalsta TLS (to dara lielākā daļa oficiālo klientu). Izolācijai varat izmantot arī Redis, izmantojot stunnel vai iekšēju privātu tīklu (piemēram, VPC).
Ugunsmūra noteikumi
Atļaut tikai uzticamus avotus. Piemēri:
# UFW (Ubuntu/Debian) - allow a single remote host
sudo ufw allow from 203.0.113.10 to any port 6379 proto tcp
# firewalld (RHEL family)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" \
source address="203.0.113.10/32" port protocol="tcp" port="6379" accept'
sudo firewall-cmd --reloadNoturība un atmiņas pārvaldība
Izvēlieties RDB, AOF vai abus
Redis saglabā datus RAM, bet datu noturība aizsargā pret datu zudumu:
- RDB momentuzņēmumi: periodiski, kompakti faili. Ātrāka restartēšana, mazs apjoms. Piemērots kešatmiņas/sesijas glabāšanai.
- AOF (tikai pievienot fails): reģistrē katru ierakstīšanas reizi. Izturīgāka, nedaudz lielākas I/O pieslodzes. Labāk piemērotas kritiski svarīgām datu kopām.
- RDB + AOF: kopīgs kompromiss — ātra restartēšana un izturība.
# Example RDB snapshot rules (default examples)
save 900 1
save 300 10
save 60 10000
# Enable AOF and modern rewrite mode
appendonly yes
appendfsync everysec
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mbmaksimālā atmiņa un izlikšanas politika
Iestatiet atmiņas ierobežojumu, lai Redis nekad nepiespiestu kodolu OOM-apturēt procesu:
maxmemory 2gb
maxmemory-policy allkeys-lru # Alternatives: volatile-lru, allkeys-random, noeviction, etc.Tīrai kešatmiņai labi darbojas allkeys-lru vai allkeys-lfu. Sesijas vai kritiski svarīgu datu gadījumā apsveriet iespēju neizmantot izdzīšanas funkciju, taču nodrošiniet pietiekamu ietilpību.
Linux veiktspējas regulēšana Redis
Kodola un sistēmas iestatījumi
- vm.overcommit_memory=1, lai izvairītos no atmiņas piešķiršanas kļūmēm
- Atspējojiet caurspīdīgās milzīgās lapas (THP), lai nodrošinātu nemainīgu latentumu
- Palieliniet somaxconn, lai uzlabotu savienojumu uzkrāšanos
- Paaugstināt failu deskriptoru vērtību, ja tiek izmantoti daudzi savienojumi
# /etc/sysctl.d/99-redis.conf
vm.overcommit_memory=1
net.core.somaxconn=1024
# Apply now
sudo sysctl --system
# Disable THP (temporary until reboot)
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag
# Increase open files for Redis via systemd override
sudo systemctl edit redis-server || sudo systemctl edit redis
# In the editor, add:
# [Service]
# LimitNOFILE=100000
sudo systemctl daemon-reload
sudo systemctl restart redis-server || sudo systemctl restart redisVeiciet validāciju ar redis-benchmark (iekļauts komplektā) vai tādiem rīkiem kā memtier_benchmark, lai apstiprinātu caurlaidspējas un latentuma uzlabojumus.
Uzraudzība un apkope
- Žurnāli: /var/log/redis/redis-server.log (ceļš mainās). Saglabāšanai izmantojiet logrotate.
- INFO komanda: pārbaudiet atmiņu, klientus, CPU, noturības statistika.
- SLOWLOG: atrodiet lēnas darbības, ko izraisa lieli taustiņi vai bloķējošas komandas.
- Dublējumkopijas: regulāri (un pirms jaunināšanas) kopējiet RDB/AOF failus.
- Jauninājumi: pārskatiet laidiena piezīmes; izveidojiet dublējumu un pēc tam jauniniet apkopes laikā.
# Examples
redis-cli INFO memory
redis-cli SLOWLOG GET 10
redis-cli CONFIG GET dir
redis-cli CONFIG REWRITEIzmantojiet Redis ar savām lietojumprogrammām
WordPress objektu kešatmiņa (ieteicama)
- Redis servera instalēšana lokāli (tajā pašā resursdatorā, kurā darbojas WordPress), lai nodrošinātu vislabāko latentumu.
- WordPress programmā instalējiet spraudni “Redis Object Cache”.
- Iestatiet WP_REDIS_PASSWORD WP-config.php ja esat iespējojis requirepass.
- Aktivizējiet objekta kešatmiņu spraudnī un pārbaudiet savienojumu.
// wp-config.php
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_PASSWORD', '<STRONG_UNIQUE_PASSWORD>' );
define( 'WP_CACHE', true );Sagaidiet ātrākas administrēšanas lapas, mazāku datubāzes vaicājumu skaitu un ātrāku lietotāja pieredzi. Lielai datplūsmai apvienojiet ar lapu kešatmiņu (piemēram, Nginx FastCGI kešatmiņu) un CDN.
Citi skursteņi (PHP, Python, Node.js)
- PHP: predis/predis vai phpredis paplašinājums
- Python: redis-py
- Node.js: ioredis vai node-redis
# redis-cli example
redis-cli -a <PASSWORD> set app:health ok
redis-cli -a <PASSWORD> get app:healthVienmēr izmantojiet savienojumu apvienošanu, taimautus un saprātīgu atslēgu nosaukšanu (nosaukumtelpas, piemēram, app:env:feature:key). Apsveriet TTL kešatmiņas atslēgām, lai novērstu novecojušu datu uzkrāšanos.
Bieži sastopamu problēmu novēršana
- Nevar izveidot savienojumu: pārbaudiet saistījumu (bind), portu (port), ugunsmūri (firewall) un requirepass. Izmantojiet redis-cli -h HOST -p PORT -a PASSWORD.
- OOM jeb izlikšanas vētras: Palieliniet maksimālo atmiņu, mainiet politiku vai samaziniet datu kopas lielumu. Uzraugiet INFO atmiņu.
- Augstas latentuma vērtības: atspējot THP, noregulēt kodolu, izvairīties no lieliem Lua skriptiem vai masīvām atslēgām. Pārbaudīt SLOWLOG.
- Dati netiek saglabāti: Pārliecinieties, vai AOF/RDB ir iespējots un vai direktorijā ir rakstīšanas tiesības. Pārbaudiet atļaujas un žurnālus.
- TLS rokasspiediena kļūmes: validēt sertifikātu ķēdi, atbilstošo CN/SAN un klienta atbalstu TLS.
Kad pārvaldītā mitināšana palīdz
Ja nevēlaties manage Redis pats, a manageVPS vai mākoņserveris ar iepriekš konfigurētu Redis var ietaupīt stundas un samazināt risku. YouStable, mūsu inženieri var nodrošināt optimizētu Linux serveri ar Redis, drošas noklusējuma vērtības un nepārtraukta uzraudzība — lai jūs varētu koncentrēties uz savu lietojumprogrammu, nevis santehniku.
Paraugprakses kopsavilkums
- Kad vien iespējams, saglabājiet Redis lokālu savienojumu ar lietotņu serveri; pretējā gadījumā izmantojiet TLS un stingru ugunsmūri.
- Iespējojiet autentifikāciju un apsveriet piekļuves pārvaldības sarakstus (ACL) vairāku lietotņu vidēm.
- Izvēlieties pareizo datu noturības līmeni (RDB/AOF) atbilstoši datu noturības vajadzībām.
- Iestatiet maksimālo atmiņu un izlikšanas politiku, kas atbilst jūsu darba slodzei.
- Operētājsistēmas noregulēšana: overcommit_memory, atspējojiet THP un palieliniet somaxconn vērtību.
- Uzraudzīt darbību, izmantojot INFO, SLOWLOG un ārējos rādītājus. Regulāri dublēt RDB/AOF.
Bieži uzdotie jautājumi – Izmantojiet Redis Linux serverī
Vai Redis ir drošs lietošanai internetā?
Nē. Turiet Redis aiz ugunsmūra un privātā tīklā. Ja nepieciešama attālā piekļuve, ieviesiet autentifikāciju, ierobežojiet avota IP adreses un iespējojiet TLS. Noklusējuma atvērtā piekļuve ir kritisks drošības risks.
Kas ir labāks noturībai: RDB vai AOF?
Kešatmiņai parasti pietiek ar RDB momentuzņēmumiem, un tie tiek ātri palaisti. Lai nodrošinātu lielāku izturību, iespējojiet AOF ar appendfsync everysec. Daudzās ražošanas vidēs tiek izmantoti abi, lai līdzsvarotu atkopšanas ātrumu un datu drošību.
Cik daudz RAM Vai man vajadzētu piešķirt līdzekļus Redis?
Iestatīt maksimālo atmiņu zem kopējās sistēmas RAM, atstājot brīvu vietu operētājsistēmai un citiem pakalpojumiem (parasti 50–75 % no pieejamās atmiņas Redis, ja tā ir galvenā darba slodze). Pielāgojiet tā izmēru savam datu kopumam un izslēgšanas politikai.
Vai Redis ir nepieciešama īpaša kodola regulēšana?
Jā. Iestatiet vm.overcommit_memory=1, palieliniet net.core.somaxconn un atspējojiet caurspīdīgās milzīgās lapas. Šīs izmaiņas samazina latentuma pieaugumus un piešķiršanas kļūmes slodzes laikā.
Kā paātrināt WordPress darbību, izmantojot Redis?
Lokāli instalējiet Redis, nostipriniet to un pēc tam pievienojiet Redis Object Cache spraudni pakalpojumam WordPress. Iespējojiet objektu kešatmiņu un pārliecinieties, vai tā ir savienota. Lai iegūtu labākos rezultātus, apvienojiet to ar lapu kešatmiņu un CDN. Pārvaldītie serveri no YouStable var to iestatīt jūsu vietā no sākuma līdz beigām.
Veicot šīs darbības, jūs varat pārliecinoši instalēt, nodrošināt un optimizēt Redis savā Linux serverī neatkarīgi no tā, vai paātrināt WordPress darbību, mērogojat API vai veidojat reāllaika funkcijas.