| Tested on | Target: Red Hat Enterprise Linux 10.2 (Coughlan) Source: Redis OSS 6.2.19 (RHEL 9 also ships Redis 6.2) |
|---|---|
| Package | valkey-8.0.11-1.el10_2.x86_64 |
| Applies to | RHEL 10 (Valkey); source Redis OSS ≤ 7.2 / typical RHEL 9 redis |
| Privilege | sudo or root for package and service changes |
| Scope | Why redis is missing on RHEL 10, install Valkey, transfer a Redis-generated RDB, load it with AOF disabled on first start, and verify migrated keys. Does not cover Redis Cluster, Redis Enterprise, or Redis Stack modules. |
| Related guides | Install Redis on Rocky Linux 9 Install Redis on Ubuntu |
RHEL 10 no longer ships redis, redis-devel, or redis-doc. Red Hat’s supported replacement is Valkey, which speaks the same RESP protocol on port 6379 and can load Redis-compatible RDB and AOF files from open-source Redis through 7.2.
This walkthrough moves a real Redis-generated dump.rdb onto RHEL 10 Valkey: create keys on Redis OSS 6.2 (the lineage RHEL 9 packages use), run SAVE, copy the file, disable AOF for the first Valkey start, then read the same keys back with valkey-cli.
RHEL 10 Redis Replacement: Quick Answer
Try the old package name first with dnf so you see the exact failure:
sudo dnf install redisUpdating Subscription Management repositories.
Last metadata expiration check: 0:16:46 ago on Tue 22 Sep 2026 07:35:06 AM IST.
No match for argument: redis
Error: Unable to find a match: redisThat No match line is the RHEL 10 signal: the redis package name is gone. Install Valkey instead:
sudo dnf install valkeyInstalled:
valkey-8.0.11-1.el10_2.x86_64The NEVRA confirms Valkey landed from AppStream. Enable and start the service with systemctl:
sudo systemctl enable --now valkeyConfirm the server answers:
valkey-cli pingPONGPONG means Valkey is listening. For an existing Redis workload, keep reading: the dump transfer and first-start AOF rule matter more than the empty install.
Why Is Redis Missing from RHEL 10?
Confirm the RPM is gone. The rpm command covers other query flags if you need a wider package check:
rpm -q redispackage redis is not installedRed Hat removed Redis from RHEL 10 and documents Valkey as the replacement in the RHEL 10 adoption considerations. The Valkey project is a Linux Foundation fork of open-source Redis 7.2.4 and remains BSD-licensed.
Redis vs Valkey on RHEL
| Item | Redis (RHEL 9) | Valkey (RHEL 10) |
|---|---|---|
| Package | redis |
valkey |
| Server binary | redis-server |
valkey-server |
| CLI | redis-cli |
valkey-cli |
| systemd unit | redis.service |
valkey.service |
| Config | /etc/redis/redis.conf |
/etc/valkey/valkey.conf |
| Data directory | /var/lib/redis |
/var/lib/valkey |
| Default port | 6379 |
6379 |
Most Redis protocol clients keep working against Valkey for common commands. Package names, binaries, systemd units, and filesystem paths still change, and Redis modules or Redis Stack features need a separate check.
On RHEL 10.2, valkey-compat-redis was not available in the AppStream repositories I queried. Plan a manual dump and config migration.
Check the Source Redis Version
On the host that still runs Redis (RHEL 9, Rocky Linux 9, or another Redis OSS ≤ 7.2 system), record the version before you migrate:
redis-server --versionRedis server v=6.2.19 sha=00000000:0 malloc=libc bits=64 build=ec31ec6ed9f24e2aYou can also read it from a live instance:
redis-cli INFO server | grep redis_versionredis_version:6.2.196.2.x sits inside Valkey’s supported RDB range (Redis OSS 2.x through 7.2.x). Redis Community Edition 7.4 and later dumps are not compatible. Upstream documents the matrix in the Valkey migration guide.
If the workload uses Redis Stack or extra modules, verify those separately. Core RESP and RDB compatibility does not mean every module has a Valkey equivalent.
Create Fixture Data on Redis Before Migration
Stop application writes (or accept a short freeze). Load a small fixture on the Redis host so you can prove the same keys after Valkey starts. Store a string:
redis-cli SET glc:string "hello-redis"SET returns OK. Add a hash:
redis-cli HSET glc:hash field1 value1 field2 value2HSET returns the number of fields added. Clear any old list key:
redis-cli DEL glc:listDEL returns how many keys were removed. Push three list elements:
redis-cli LPUSH glc:list a b cLPUSH returns the list length. Add a set:
redis-cli SADD glc:set x y zSADD returns how many members were added. Store a key with a one-hour TTL:
redis-cli SET glc:ttl expires EX 3600SET returns OK. Capture the baseline before the dump:
redis-cli DBSIZE5Five keys are present. Read the string:
redis-cli GET glc:stringhello-redisConfirm the hash:
redis-cli HGETALL glc:hashfield1
value1
field2
value2Read the list:
redis-cli LRANGE glc:list 0 -1c
b
aRead the set:
redis-cli SMEMBERS glc:setx
y
zThe order of SMEMBERS output is not guaranteed; verify that the same members are present rather than expecting the same order.
Check the TTL:
redis-cli TTL glc:ttl3600You will re-run the same reads on Valkey after the cutover. Do not create this fixture only on Valkey after migration; that would not prove the RDB load.
Save the Redis Dump with SAVE
Find the real snapshot path before you save. Do not assume /var/lib/redis/dump.rdb without checking:
redis-cli CONFIG GET dirdir
/var/lib/redisNext ask for the dump filename:
redis-cli CONFIG GET dbfilenamedbfilename
dump.rdbOn this test host, Redis reported /var/lib/redis and dump.rdb, so the snapshot path is /var/lib/redis/dump.rdb.
BGSAVE is asynchronous. For a planned migration where writes are already stopped, use synchronous SAVE so the file on disk is complete before you copy it:
redis-cli SAVEOKOK means the snapshot finished. Confirm that file:
ls -l /var/lib/redis/dump.rdb-rw-r--r--. 1 root root 246 Sep 22 07:51 /var/lib/redis/dump.rdbAlso keep a copy of /etc/redis/redis.conf for reference. Stop Redis before Valkey takes port 6379 on the target, or keep Redis running until after the file is copied if Redis and Valkey are on different hosts.
sudo systemctl stop redisTransfer the Dump to RHEL 10
From the Redis host, copy the dump to the RHEL 10 system. Example with scp (replace the user and hostname):
scp /var/lib/redis/dump.rdb admin@rhel10.example:/tmp/dump.rdbOn the RHEL 10 host, confirm the file arrived:
ls -l /tmp/dump.rdb-rw-r--r--. 1 admin admin 246 Sep 22 07:51 /tmp/dump.rdbInstall Valkey on RHEL 10
If Valkey is not already present:
sudo dnf install -y valkeyEnable the unit but do not start it yet if you are about to place a dump (or stop it if it is already running):
sudo systemctl stop valkeyAn empty data directory avoids mixing an old Valkey dump with the Redis file you are about to install.
Migrate Configuration Without Overwriting valkey.conf
Do not replace /etc/valkey/valkey.conf with the old Redis file. Start from the packaged Valkey configuration and copy across only settings you intentionally customized, such as:
requirepass/ ACL usersmaxmemoryand eviction policybindand TLS listeners- persistence (
save, andappendonlyonly after the first RDB load) - a custom
dirordbfilenameif you use non-default paths
Valkey understands Redis OSS 7.2-style options for many settings, but distro paths and defaults still belong in the Valkey package file.
Disable AOF for the First RDB Load
If AOF is enabled on first start, Valkey may not import the copied RDB the way you expect. The Valkey migration guide calls this out explicitly.
Check the packaged setting:
grep -E '^[[:space:]]*appendonly' /etc/valkey/valkey.confappendonly noFor the initial import, leave (or set) appendonly no. After the migrated dataset is verified, re-enable AOF using Valkey's documented AOF-enable procedure if your deployment requires it; do not simply flip the setting and restart without verifying the AOF rewrite completed.
Install the Redis Dump into Valkey
Confirm where the packaged Valkey service stores its dump. With the unit stopped or before the first load, read the config, or after a successful start use valkey-cli:
grep -E '^[[:space:]]*(dir|dbfilename)' /etc/valkey/valkey.confdbfilename dump.rdb
dir ./The packaged unit sets WorkingDirectory=/var/lib/valkey, so dir ./ resolves to /var/lib/valkey. A running instance reports the absolute path:
dir
/var/lib/valkey
dbfilename
dump.rdbPlace the Redis dump at that path with the correct owner and mode:
sudo install -o valkey -g valkey -m 660 /tmp/dump.rdb /var/lib/valkey/dump.rdbRestore the SELinux label on RHEL. File contexts and restorecon are covered in SELinux modes and file contexts:
sudo restorecon -v /var/lib/valkey/dump.rdbIf the label was already correct, restorecon may print nothing. If ownership is wrong, fix it with the chown command before you relabel. Confirm ownership and context:
ls -laZ /var/lib/valkey/dump.rdb-rw-rw----. 1 valkey valkey system_u:object_r:redis_var_lib_t:s0 246 Sep 22 07:51 /var/lib/valkey/dump.rdbStart Valkey:
sudo systemctl start valkeyConfirm the unit is active:
systemctl is-active valkeyactiveactive means Valkey started successfully. The key checks in the next section confirm whether the Redis dump actually loaded. If the unit fails, check the journalctl unit log for RDB version errors before continuing.
Verify Migrated Redis Data on Valkey
These reads must match the Redis baseline. Do not recreate the fixture on Valkey first.
valkey-cli DBSIZE5Five keys means the Redis dump loaded. Read the string:
valkey-cli GET glc:stringhello-redisThe string matches the Redis baseline. Confirm the hash:
valkey-cli HGETALL glc:hashfield1
value1
field2
value2Both hash fields came across. Read the list:
valkey-cli LRANGE glc:list 0 -1c
b
aThe list order matches Redis (LPUSH newest first). Read the set:
valkey-cli SMEMBERS glc:setx
y
zThe order of SMEMBERS output is not guaranteed; confirm the same members exist rather than matching line order. All three set members are present. Check the TTL:
valkey-cli TTL glc:ttl3505A still-positive TTL means the expiry survived the load (the number counts down from 3600).
INFO server still reports a Redis-compatible version string alongside Valkey:
valkey-cli INFO server | head -8# Server
redis_version:7.2.4
server_name:valkey
valkey_version:8.0.11
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:ce3013a3028d2f88
server_mode:standaloneRead server_name:valkey and valkey_version for the product identity. The redis_version field is a compatibility string, not proof that Redis RPMs are installed.
Test Clients and Application Smoke Checks
Applications that already speak Redis on 127.0.0.1:6379 usually need only a restart after Valkey is listening. From a host that still has redis-cli:
redis-cli -h 127.0.0.1 -p 6379 pingExpect PONG. On RHEL 10 the Redis CLI package is gone, so use valkey-cli for local checks. Library clients (hiredis, redis-py, go-redis, and similar) continue to use the Redis protocol for common commands.
Point or restart the application against Valkey and confirm one critical read/write path before you retire the Redis host or backups.
Update Service and Application References
| Old reference | New reference |
|---|---|
redis.service |
valkey.service |
redis-server |
valkey-server |
redis-cli |
valkey-cli |
/etc/redis/redis.conf |
/etc/valkey/valkey.conf |
/var/lib/redis |
/var/lib/valkey |
package redis |
package valkey |
Port 6379 stays the same unless you changed it. Update monitoring that looks for the redis unit or process name.
Common Migration Problems
| Symptom | Likely cause | Fix |
|---|---|---|
dnf install redis → No match |
Package removed on RHEL 10 | Install valkey |
Valkey starts empty after copying dump.rdb |
AOF enabled on first start, or wrong dir/dbfilename |
Set appendonly no, place dump under /var/lib/valkey/dump.rdb, restart |
Valkey fails on start after copying dump.rdb |
RDB from Redis 7.4+ or corrupt dump | Check the unit journal; use ≤7.2 dump or logical reseed |
Permission or SELinux denial under /var/lib/valkey |
Wrong owner or label | chown valkey:valkey and restorecon on the dump |
App still looks for redis.service |
Unit name not updated | Point systemd and scripts at valkey.service |
Summary
RHEL 10 does not provide Redis RPMs. Install Valkey from AppStream, keep the packaged valkey.conf, and migrate only the settings you customized. For Redis OSS dumps through 7.2, stop writes, run SAVE, copy dump.rdb to the RHEL 10 host, install it under /var/lib/valkey with the valkey owner, run restorecon, leave appendonly no for the first start, then verify the keys that existed on Redis.
Treat Redis 7.4+ dumps as incompatible. Modules and Redis Stack features need their own plan. For Ubuntu hosts that still package Redis 8 beside Valkey 9, use Migrate Redis to Valkey on Ubuntu instead of this RHEL package-replacement path.
References
- Infrastructure services — Considerations in adopting RHEL 10
- How to migrate from Redis to Valkey in RHEL 10
- Valkey: Migration from Redis
- Valkey installation
Frequently Asked Questions
Can I install Redis on RHEL 10?
Not from supported RHEL 10 repositories. dnf install redis returns no match. Install Valkey instead.
Is Valkey a drop-in replacement for Redis?
For Redis OSS 7.2 and earlier, Valkey keeps strong protocol, configuration, and persistence compatibility, but the RHEL package, binaries, service names, paths, and some ecosystem modules differ.
Where is the Valkey config file on RHEL 10?
/etc/valkey/valkey.conf. Data defaults to /var/lib/valkey. Do not overwrite that file wholesale with redis.conf.
Will my Redis clients keep working?
Most Redis protocol clients continue to work against Valkey on port 6379 for common commands. Retest authentication, TLS, and any module-specific features you relied on.
What about redis-devel and redis-doc?
Those packages were removed with Redis on RHEL 10. Use Valkey and its documentation instead.

