Valkey
外观
- Valkey 是一个开源的内存键值数据库,用作分布式缓存和消息代理,并可选支持持久化。
提示 valkey 是 Redis 的一个社区驱动的分支,是在 Redis Inc. 更改其许可证后创建的。它旨在成为一个直接的替代品,同时保持一个宽松的开源许可证。
安装
启动/启用 valkey.service。
客户端软件
- Python: python-redis
- PHP: php-redis
- C: hiredis
配置
Valkey 的配置文件有详细的文档,位于 /etc/valkey/valkey.conf。
- 在指定的端口(默认为 6379)上接受连接,设置
port 0以禁用 TCP 监听
port 6379
监听套接字
与 TCP/IP 相比,使用 Unix 套接字通过 Valkey 可能会提高性能 [1]。
要在 /etc/valkey/valkey.conf 中进行以下更改以启用 Unix 套接字的使用
- 启用并更新 Valkey 套接字路径
unixsocket /run/valkey/valkey.sock
- 将套接字权限设置为
valkey用户组的所有成员
unixsocketperm 770
- 将用户(例如 "git"、"http")添加到
valkey用户组,以便他们可以访问和使用套接字。
最后 重启 valkey.service。
故障排除
关于透明大页 (THP) 的警告
要解决诸如“你的内核启用了透明大页(THP)支持。这会给 Valkey 带来延迟和内存使用问题”之类的警告信息,你可能需要永久禁用此功能
/etc/tmpfiles.d/hugepage.conf
w /sys/kernel/mm/transparent_hugepage/enabled - - - - never w /sys/kernel/mm/transparent_hugepage/defrag - - - - never
关于TCP积压的警告
要解决诸如“TCP 积压设置 511 无法生效,因为 /proc/sys/net/core/somaxconn 设置为较低值 128”之类的警告信息,请增加当前值
/etc/sysctl.d/99-sysctl.conf
net.core.somaxconn=512
关于overcommit_memory设置为0的警告
要解决诸如“overcommit_memory 设置为 0!在内存不足的情况下,后台保存可能会失败”之类的警告信息
/etc/sysctl.d/99-sysctl.conf
vm.overcommit_memory=1
技巧与提示
启用 Tab 自动补全
Zsh
你可以利用来自 zsh-completions 的 redis-cli 补全脚本。要将 redis-cli 补全脚本映射到 valkey-cli,请将以下行添加到 .zshrc
~/.zshrc
compdef '_dispatch redis-cli_completion redis-cli' valkey-cli