Redis®*: Aan de slag
Snelle gids om aan de slag te gaan met Redis
👋 Welkom bij de Stackhero-documentatie!
Stackhero biedt een kant-en-klare Redis cloud oplossing die tal van voordelen biedt, waaronder:
Redis Commanderweb UI inbegrepen.- Onbeperkte berichtgrootte en overdrachten.
- Moeiteloze updates met slechts één klik.
- Optimale prestaties en robuuste beveiliging aangedreven door een privé en dedicated VM.
Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de Redis cloud hosting oplossing van Stackhero te proberen!
Redis is een krachtige, ongelooflijk snelle in-memory database die voor meerdere doeleinden kan worden gebruikt. Het kan fungeren als een cachesysteem, een key-value store, realtime data sorteren vergemakkelijken, en functioneren als een publish-subscribe queue en eventsysteem.
waarschuwing Redis heeft zijn licentie gewijzigd en is niet langer open source. De gemeenschap, ontwikkelaars en bedrijven hebben een Redis-fork genaamd Valkey gecreëerd, die een directe vervanging voor Redis is. We raden aan om Valkey in plaats van Redis te gebruiken.
Om u te helpen beginnen, hebben we enkele codevoorbeelden gedeeld die laten zien hoe u verbinding maakt met een Redis-instantie. U kunt deze voorbeelden vinden in de volgende GitHub-repository: https://github.com/stackhero-io/redisGettingStarted.
Redis gebruiken met Ruby en Ruby on Rails
Configureer Redis als cachesysteem voor Ruby on Rails
Om te beginnen wilt u misschien de "redis" gem installeren. Dit kunt u doen door het volgende uit te voeren:
bundle add redis
Open vervolgens het bestand config/environments/production.rb en voeg de volgende regel toe:
config.cache_store = :redis_cache_store, { url: ENV['REDIS_URL'] }
Definieer ten slotte de omgevingsvariabele REDIS_URL. Hier is een sjabloon dat u kunt gebruiken door uw gegevens in te vullen:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
waarschuwing Standaard is caching alleen ingeschakeld in de productieomgeving. Als u caching tijdens de ontwikkeling wilt testen, kunt u het bestand
config/environments/development.rbbewerken. Voeg de bovenstaande configuratie toe en voegconfig.action_controller.perform_caching = truetoe om caching in te schakelen. Een eenvoudige manier om te controleren of caching werkt, is door een Rails-console te starten (metbin/rails console) en te testen doorRails.cache.write("foo", "bar")te schrijven.
Voor meer details over het configureren van Redis als cachesysteem voor Ruby on Rails, bekijk de officiële Rails-documentatie.
Configureer Redis voor Sidekiq
Sidekiq zal automatisch de Redis-server gebruiken die is gespecificeerd in de omgevingsvariabele REDIS_URL.
U kunt de omgevingsvariabele REDIS_URL definiëren met uw specifieke informatie als volgt:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Voor meer inzichten over het gebruik van Sidekiq met Redis, raadpleeg de officiële Sidekiq-documentatie.
Configureer Redis voor Resque
Resque, net als Sidekiq, zal de Redis-server gebruiken die is gedefinieerd in de omgevingsvariabele REDIS_URL.
Stel de REDIS_URL in met uw gegevens als volgt:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Voor meer informatie over het gebruik van Resque met Redis, bezoek de officiële Resque-documentatie.
PHP-sessies beheren met Redis
U kunt de volgende code gebruiken om PHP-sessies op Stackhero voor Redis op te slaan:
<?php
// Parseer Redis URL
$redis_url = parse_url('rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>');
// Configureer sessiehandler
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', "tls://{$redis_url['host']}:{$redis_url['port']}?auth={$redis_url['pass']}&timeout=5");
// Start de sessie
session_start();
?>
Verbeteren van Redis-beveiliging
Om ervoor te zorgen dat uw Redis-instantie veilig is, is het cruciaal om bepaalde beveiligingsmaatregelen te implementeren.
Versleutel communicatie met Redis (TLS)
Standaard versleutelt Redis geen communicatie. Op Stackhero hebben we echter standaard TLS-versleuteling geïntegreerd.
Om hiervan te profiteren, configureert u uw Redis-client om TLS-versleuteling te gebruiken en maakt u verbinding met uw instantie via de <PORT_TLS> poort. Vermijd het gebruik van <PORT_CLEAR>, omdat dit geen gegevens versleutelt.
Het beste is dat u verder niets hoeft te doen, wij hebben de complexe configuratie verzorgd.
Bescherm Redis tegen brute force-aanvallen
Uw Redis-instantie is beveiligd met een wachtwoord, dat Stackhero automatisch instelt op een zeer veilige standaard. Als u ervoor kiest om het te wijzigen, zorg er dan voor dat u een uiterst complex wachtwoord selecteert.
Redis is zeer efficiënt maar heeft geen ingebouwde bescherming tegen brute force-aanvallen, waardoor een aanvaller mogelijk tot 150.000 wachtwoordcombinaties per seconde kan testen.
Om dit risico tegen te gaan, hanteren we een minimale wachtwoordlengte van 16 tekens (wat ongeveer 4.5231285e+74 combinaties oplevert). Standaard gebruiken we een wachtwoord van 64 tekens (wat ongeveer 9.61963e+111 combinaties biedt).
Voor extra beveiliging en om het risico op brute force-aanvallen aanzienlijk te verminderen, wordt sterk aanbevolen om de firewallinstellingen van Stackhero (te vinden onder het tabblad "Firewall") te configureren om verbindingen strikt te beperken tot uw IP-adressen. Deze stap is essentieel voor het verbeteren van uw beveiligingshouding.