As explained in more detail on the Redis website, Redis offers a couple different persistence options to help minimize data loss in the event of a power outage or other server issue:
|RDB||Redis Database Format||Performs point-in-time snapshots of the dataset at specified intervals.|
|AOF||Append Only Format||Logs every write operation received by the server, that will be played again at server startup, reconstructing the original dataset. Commands are logged using the same format as the Redis protocol itself, in an append-only fashion. Redis is able to rewrite the log on background when it gets too big.|
AOF persistence so we don't risk losing our last few minutes of data in the event of an unplanned shutdown. This will result in bigger files being created, but we're okay with that since every change will immediately get saved to the database. Here we go:
$ redis-cli config set appendonly yes
I'm also leaving the
RDB persistence model in place for an extra measure of safety. Perhaps I'm paranoid?
Redis is configured very securely out of the box so only clients on the same server can access the Redis database by default. This is the desired configuration in many circumstances since Redis is often used as the key/value store infrastructure in support of other applications that are running on the same server.
If you wish to make your Redis server available to other clients, you can change the security configuration to make it more open. For example, if you are running Redis on a Raspberry Pi, and want to make it accessible from another machine, carry out the following steps:
Edit the main Redis configuration file:
$ gksudo leafpad /etc/redis/redis.conf
gksudoto launch the
leafpadgraphical text editor. You could obviously use
vim, or some other text editor instead.
Change the following lines in the file:
# comment out the next line as shown #bind 127.0.0.1 # (more lines here) # change protected-mode from yes to no protected-mode no # (more lines here) # add password, if desired, but don't use the default "foobared" password # included in the file requirepass foobared
Save the changes to the configuration file.
Restart the Redis server to activate the changes you made to the configuration file.
$ sudo service redis-server restart
Connect to the Redis server from the remote machine to verify you can connect. The example here illuminates how you would connect from another Linux machine running the
redis-cli. We assume the name of the Raspberry Pi system hosting Redis is
$ redis-cli -h raspi
Use the AUTH command to enter your password:
raspi:6379> auth myPassword
You will then be authenticated and ready to carry out redis commands as if you were on the local system hosting the redis server.
You could also connect to the remote redis server and supply your password on the command line as follows:
$ redis-cli -h raspi -p myPasswordThis is not a recommended security approach since the redis password will be saved in your bash history.