Redis

来自 ArchWiki

来自 Wikipedia:Redis

Redis 是一个源代码可用的内存存储系统,用作分布式内存键值数据库、缓存和消息代理,并具有可选的持久性。
提示: valkey 是 Redis Inc. 更改许可证后创建的社区驱动的 Redis 分支。它的目标是成为一个即插即用的替代品,同时保持在宽松的开源许可证下。

安装

安装 redis 软件包。

启动/启用 redis.service

客户端软件

配置

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