Redis
- Redis 是一个源代码可用的内存存储系统,用作分布式内存键值数据库、缓存和消息代理,并具有可选的持久性。
提示: valkey 是 Redis Inc. 更改许可证后创建的社区驱动的 Redis 分支。它的目标是成为一个即插即用的替代品,同时保持在宽松的开源许可证下。
安装
启动/启用 redis.service
。
客户端软件
- Python: python-redis
- PHP: php-redis
- C: hiredis
配置
Redis 配置文件有详细的文档,位于 /etc/redis/redis.conf
。
- 接受指定端口(默认为 6379)上的连接,指定
port 0
以禁用 TCP 监听
port 6379
监听套接字
与 TCP/IP 相比,通过 Unix 套接字使用 Redis 可能会提高性能 [1]。
应在 /etc/redis/redis.conf
中进行以下更改以启用 Unix 套接字的使用
- 启用并更新 Redis 套接字路径
unixsocket /run/redis/redis.sock
- 将套接字的权限设置为
redis
用户组 的所有成员
unixsocketperm 770
- 将用户(例如“git”、“http”)添加到
redis
用户组,以便他们可以访问和使用套接字。
最后重启 redis.service
。
Redis JSON
JSON 对象现在在 Redis 中得到了支持。要使用此功能,您需要安装 JSON 模块 redis-rejsonAUR 然后编辑 /etc/redis/redis.conf
并在配置的模块部分中添加
loadmodule /usr/lib/redis/rejson.so
然后重启 redis.service
以启用 Redis JSON。
故障排除
关于透明大页 (THP) 的警告
要解决诸如“您的内核中启用了透明大页 (THP) 支持。这将导致 Redis 出现延迟和内存使用问题”之类的警告消息,您可能需要永久禁用此功能
/etc/tmpfiles.d/redis.conf
w /sys/kernel/mm/transparent_hugepage/enabled - - - - never w /sys/kernel/mm/transparent_hugepage/defrag - - - - never
关于 TCP 积压的警告
要解决诸如“无法强制执行 511 的 TCP 积压设置,因为 /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