====== Redis ======

Redis ist ein quelloffener (BSD-lizenzierter) In-Memory-Datenstrukturspeicher, der als Datenbank, Cache, Message Broker und Streaming-Engine verwendet wird. Redis bietet Datenstrukturen wie Strings, Hashes, Listen, Sets, sortierte Sets mit Bereichsabfragen, Bitmaps, Hyperlogs, geospatiale Indizes und Streams. Redis verfügt über integrierte Replikation, Lua-Scripting, LRU-Eviction, Transaktionen und verschiedene Ebenen der On-Disk-Persistenz und bietet Hochverfügbarkeit über Redis Sentinel und automatische Partitionierung mit Redis Cluster.


===== Paket =====

<code>
pacman -S redis
</code>


===== Konfiguration =====


==== redis.conf ====

<code>
nano /etc/redis/redis.conf
</code>

<code>
port 0
unixsocket /run/redis/redis.sock
unixsocketperm 770
requirepass your-password
</code>


==== http zur redis-Gruppe hinzufügen ====

<code>
usermod -aG redis http
</code>


===== Start =====

<code>
systemctl enable --now redis.service
</code>


==== sysctl ====

Wenn der Fehler ''overcommit memory ...'' mit ''systemctl status redis.service'' auftritt, füge dies zu sysctl hinzu:

<code>
/etc/sysctl.d/99-sysctl.conf
</code>

<code>
vm.overcommit_memory=1
</code>


===== PHP =====

Redis für php aktivieren.

<code>
pacman -S php-igbinary php-redis
nano /etc/php/conf.d/{igbinary.ini,redis.ini}
</code>

<code>
extension=igbinary.so
extension=redis
</code>

<alert type="danger" icon="fa fa-warning">''igbinary'' muss zuerst geladen werden, sonst startet das redis-Modul nicht.</alert>


===== Check =====

<code>
redis-cli -s /var/run/redis/redis.sock --askpass monitor
</code>