在 Fedora 上跑 Valkey 9.1:装、起服务、连上去,以及它与 Redis 的关系
Fedora 上如果要跑 Redis 类服务,装的是 Valkey。
dnf list --available redis没有 redis 这个包。仓库里能装到的是:
dnf list --available valkeyvalkey.x86_64 9.1.2-1.fc45 fedoraValkey 是 Redis 7.2 之后由社区接管的分支(Linux 基金会),Fedora 把默认的内存数据库换成了它。
sudo dnf install valkey包很小:下载 1.9 MiB,安装 6.6 MiB。
装完有两个服务单元,但默认都不启动:
systemctl list-unit-files | grep -i valkeyvalkey-sentinel.service disabled disabledvalkey.service disabled disabledvalkey.service 是单机服务,valkey-sentinel.service 是高可用哨兵。日常先起主服务:
sudo systemctl enable --now valkeysystemctl is-active valkeyvalkey-cli pingactivePONGPONG 就是活了。
版本与运行参数
Section titled “版本与运行参数”valkey-server --versionValkey server v=9.1.2 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=fa6c1330cfae654d几个信息值得注意:
jemalloc-5.3.0——Valkey 用 jemalloc 而不是 glibc malloc,这是它内存碎片控制做得好的原因之一bits=64说明是 64 位构建sha=00000000:0是打包时被抹掉的构建信息,不是错误
默认只听回环
Section titled “默认只听回环”ss -lntp | grep 6379LISTEN 0 511 127.0.0.1:6379 0.0.0.0:*LISTEN 0 511 [::1]:6379 [::]:*或者直接问服务自己:
valkey-cli config get bindbind127.0.0.1 -::1127.0.0.1 加 IPv6 回环,外部连不上。这是 Fedora 的默认策略——数据库不该默认暴露在网络上。
要让别的机器连,改 /etc/valkey/valkey.conf:
bind 0.0.0.0 -::protected-mode yes然后 sudo systemctl restart valkey。
valkey-cli set demo "hello fedora"valkey-cli get demoOKhello fedora看当前库里有什么:
valkey-cli info keyspace# Keyspacedb0:keys=1,expires=0,avg_ttl=0,keys_with_volatile_items=0db0:keys=1 就是有一个键。expires=0 表示没有设过期时间。
配置文件在哪
Section titled “配置文件在哪”rpm -ql valkey | grep '\.conf$'/etc/valkey/sentinel.conf/etc/valkey/valkey.conf/usr/lib/sysusers.d/valkey.conf主配置是 /etc/valkey/valkey.conf(不是 Redis 时代习惯的 /etc/redis/redis.conf)。
老脚本里写着 redis 命令怎么办
Section titled “老脚本里写着 redis 命令怎么办”仓库里没有 redis 包,但有一个兼容包:
dnf list --available 'valkey-compat*'valkey-compat-redis.noarch 9.1.2-1.fc45 fedora装它之后,原本调 redis-cli / redis-server 的脚本可以继续跑,实际执行的是 Valkey。
| 老命令 | 实际调用 |
|---|---|
redis-cli | valkey-cli |
redis-server | valkey-server |
redis-sentinel | valkey-sentinel |
从 Redis 迁移要注意什么
Section titled “从 Redis 迁移要注意什么”| 项目 | 说明 |
|---|---|
| 配置文件路径 | /etc/redis/redis.conf → /etc/valkey/valkey.conf |
| 服务名 | redis.service → valkey.service |
| 数据目录 | 检查 dir 配置项,别让新服务指向空目录 |
| 持久化文件 | RDB/AOF 格式兼容,可直接搬 dump.rdb |
| 认证 | 默认无密码,迁移后务必补 requirepass |
| 客户端 | 协议兼容,库不用改 |
| 现象 | 原因 |
|---|---|
valkey-cli 连不上 | 服务没启动,systemctl start valkey |
| 远程连 6379 超时 | 默认只绑 127.0.0.1,要改 bind |
装了 valkey 但还是找不到 redis-cli | 需要额外装 valkey-compat-redis |
| 重启后数据没了 | 没开持久化,检查 save 与 appendonly 配置 |
| 内存涨到机器卡死 | 没设 maxmemory,Valkey 不会自动限流 |
- 把 Fedora 用成服务器 — 服务化基础
- 防火墙 firewalld — 放行 6379 的正确姿势
- SELinux — 换数据目录时的标签问题
- 官方:Valkey 文档