Synopsis #
Redis is an in-memory key-value store designed for high performance, low latency, and a wide range of data structures such as strings, hashes, sets, sorted sets, and streams. It supports optional disk persistence, replication, and Lua scripting.
Redis is commonly used for caching, messaging, job queues, and ephemeral data storage.
Redis is not included in the OpenBSD base system, but is available via packages. The Redis server runs as a daemon (redis-server
) and is managed with rcctl(8)
.
Installation #
Install the Redis package:
# pkg_add redis
This installs:
redis-server
: the main daemonredis-cli
: command-line interface client- Default configuration at
/etc/redis.conf
Configuration #
The main configuration file is:
/etc/redis.conf
A minimal configuration example:
bind 127.0.0.1
port 6379
daemonize no
supervised auto
pidfile /var/run/redis.pid
logfile /var/log/redis.log
dir /var/redis
dbfilename dump.rdb
Key options:
bind
: restricts listening to loopbackport
: default is 6379daemonize
:no
forrcctl
compatibilitydir
: working directory for data persistencelogfile
: optional file logging (otherwise logs to syslog)
Create the data directory if not present:
# mkdir -p /var/redis
# chown _redis:_redis /var/redis
Enabling the Service #
Enable and start Redis:
# rcctl enable redis
# rcctl start redis
Check status:
# rcctl check redis
View logs:
# tail -f /var/log/redis.log
Basic Usage #
Connect using the Redis client:
$ redis-cli
127.0.0.1:6379> SET keyname "hello"
OK
127.0.0.1:6379> GET keyname
"hello"
Exit the client with CTRL+D
or QUIT
.
Persistence #
Redis can save the dataset to disk in two ways:
- RDB (snapshotting) — default method using
dump.rdb
- AOF (append-only file) — logs each write operation
To enable AOF persistence in /etc/redis.conf
:
appendonly yes
appendfilename "appendonly.aof"
Restart Redis to apply:
# rcctl restart redis
Backups can be made by copying the .rdb
or .aof
files from /var/redis
.
Remote Access and Security #
By default, Redis binds to 127.0.0.1
only.
To allow access from remote hosts (not recommended unless protected):
- Change bind address in
/etc/redis.conf
:
bind 127.0.0.1 192.0.2.1
- (Optional) Set a password:
requirepass "strongsecret"
- Use
pf(4)
to restrict port 6379:
pass in on $int_if proto tcp from 192.0.2.0/24 to port 6379
- Restart Redis:
# rcctl restart redis
Accessing with authentication:
$ redis-cli -a strongsecret
Important: Redis does not support TLS natively in OpenBSD’s package (as of 7.6). To proxy TLS, use relayd(8)
or stunnel
.
Service Management #
Standard service commands:
# rcctl enable redis
# rcctl start redis
# rcctl restart redis
# rcctl check redis