Redis es un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor) pero que opcionalmente puede ser usada como una base de datos durable o persistente. Está escrito en ANSI C por Salvatore Sanfilippo quien fue patrocinado por VMware1 2 y, a partir de 2013, por Pivotal Software.3 Está liberado bajo licencia BSD por lo que es considerado software de código abierto.
Algunes utilitzats de Redis les podem trobar en l'ús que es fa a projectes Laravel per exemple per a treballar amb Cache o com a suport per a esdeveniments push conjuntament amb socket.io.
$ sudo apt-get install redis-server redis-tools
$ redis-cli 127.0.0.1:6379>
Ho podeu executar comandes directament:
$ redis-cli ping PONG
Entre les comandes interessant monitoritzar (veure el que passa al servidor com per exemple els hits de cache i similars):
$ redis-cli monitor OK ...
Homestead el porta executat de sèrie al port 6379:
$ ps aux | grep redis redis 986 0.0 0.2 80316 23720 ? Ssl Oct17 1:12 /usr/bin/redis-server *:6379
El podeu també iniciar manualment:
$ redis-server --port 3001 4478:M 18 Oct 07:41:00.043 # You requested maxclients of 10000 requiring at least 10032 max file descriptors. 4478:M 18 Oct 07:41:00.043 # Redis can't set maximum open files to 10032 because of OS error: Operation not permitted. 4478:M 18 Oct 07:41:00.043 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'. _._ _.-``__ -._ _.-`` `. `_. -._ Redis 3.0.4 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ -._ ( ' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 3001 | `-._ `._ / _.-' | PID: 4478 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 4478:M 18 Oct 07:41:00.044 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 4478:M 18 Oct 07:41:00.044 # Server started, Redis version 3.0.4 4478:M 18 Oct 07:41:00.044 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 4478:M 18 Oct 07:41:00.045 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled. 4478:M 18 Oct 07:41:00.049 * The server is now ready to accept connections on port 3001
Vegeu Redis i Laravel
Es pot forçar el salvar les dades en memòria a disk amb la comanda save:
> save
El sistema també fa saves automàtics els podeu consultar al fitxer /etc/redis/redis.conf:
... ################################ SNAPSHOTTING ################################ # # Save the DB on disk: # # save <seconds> <changes> # # Will save the DB if both the given number of seconds and the given # number of write operations against the DB occurred. # # In the example below the behaviour will be to save: # after 900 sec (15 min) if at least 1 key changed # after 300 sec (5 min) if at least 10 keys changed # after 60 sec if at least 10000 keys changed # # Note: you can disable saving completely by commenting out all "save" lines. # # It is also possible to remove all the previously configured save # points by adding a save directive with a single empty string argument # like in the following example: # # save "" save 900 1 save 300 10 save 60 10000
Recursos:
Normalment les dades de Redis les trobareu a la carpeta:
/var/lib/redis
Però en tot cas podeu seguir diverses estratègies com:
$ sudo locate *rdb
per localitzar els fitxers rdb per exemple:
/var/lib/redis/dump.rdb
$ redis-cli
Si dona error:
Output Could not connect to Redis at 127.0.0.1:6379: Connection refused not connected>
Segurament el servidor Redis no està operatiu:
$ sudo service redis-server start
Ara:
$ redis-cli 127.0.0.1:6379>
Pot ser possible que necessiteu authenticació
> auth insert-redis-password-here
Finalment escrivint:
> config get dir 1) "dir" 2) "/var/lib/redis"
Per restaurar els passos són, 1) apagar el servidor:
$ sudo service redis-server stopt
2) recupereu el backup:
$ sudo cp -p /home/sammy/redis/dump.rdb /var/lib/redis
Assegureu-vos dels permisos adequats:
$ sudo chown redis:redis /var/lib/redis/dump.rdb
i:
$ sudo chmod 660 /var/lib/redis/dump.rdb
i torneu a iniciar el servidor:
$ sudo service redis-server start
Recursos: