跳转到主要内容

如果您从未使用过 Redis 或 KeyDB...

如果您以前从未使用过 Redis 或 KeyDB,但想尝试一些命令,请安装 KeyDB,然后运行服务器。

下面这行命令要求加载默认配置文件来运行服务器。'--' 用于修改配置参数。在这里,为了测试,我们禁用了保护模式(不推荐,尤其是在端口暴露的情况下——理想情况下您应该保护此实例)。由于我们将在同一节点上使用环回地址来运行客户端进行测试,我们将保持简单。我们还将其守护进程化,这样如果您没有打开多个命令提示符窗口,它将在后台运行。

keydb-server --protected-mode no --daemonize yes

现在使用客户端连接

keydb-cli -p 6379

您现在可以开始发送命令,如 set、get 等...完整的命令列表可以在命令部分查看。

为了正确设置,建议您浏览接下来显示的配置文件,查看与自定义安全设置相关的选项。

更多细节...#

阅读下文将帮助您

  • 使用 keydb-cli 访问服务器。
  • 在您的应用程序中使用 KeyDB。
  • 了解 KeyDB 的持久化工作原理。
  • 正确地安装 KeyDB。
  • 了解接下来应该阅读什么以更深入地了解 KeyDB。

构建完项目后,您可以通过输入 make test 来测试您的构建是否正常工作,但这是一个可选步骤。编译后,KeyDB 发行包内的 src 目录会填充 KeyDB 的不同可执行文件。

  • keydb-server 是 KeyDB 服务器本身。
  • keydb-sentinel 是 KeyDB Sentinel 的可执行文件(用于监控和故障转移)。
  • keydb-cli 是用于与 KeyDB 通信的命令行界面工具。
  • keydb-benchmark 用于检查 KeyDB 的性能。
  • keydb-check-aofkeydb-check-dump 在数据文件损坏的罕见情况下非常有用。

一个好主意是将 KeyDB 服务器和命令行界面都复制到适当的位置,可以手动使用以下命令:

  • sudo cp src/keydb-server /usr/local/bin/
  • sudo cp src/keydb-cli /usr/local/bin/

或者直接使用 sudo make install

在下面的文档中,我们假设 /usr/local/bin 在您的 PATH 环境变量中,这样您就可以执行这两个二进制文件而无需指定完整路径。

启动 KeyDB#

启动 KeyDB 服务器最简单的方法是直接执行 keydb-server 二进制文件,不带任何参数。

$ keydb-server
[28550] 01 Aug 19:29:28 # 警告:未指定配置文件,使用默认配置。要指定配置文件,请使用 'keydb-server /path/to/keydb.conf'
[28550] 01 Aug 19:29:28 * 服务器已启动,KeyDB 版本 2.2.12
[28550] 01 Aug 19:29:28 * 服务器现在已准备好在端口 6379 上接受连接
... 更多日志 ...

在上面的示例中,KeyDB 在没有任何显式配置文件的情况下启动,因此所有参数都将使用内部默认值。如果您只是为了体验或开发而启动 KeyDB,这完全没问题,但对于生产环境,您应该使用配置文件。

要使用配置文件启动 KeyDB,请将配置文件的完整路径作为第一个参数,如下例所示:keydb-server /etc/keydb.conf。您应该使用 KeyDB 源代码发行包根目录中包含的 keydb.conf 文件作为编写配置文件的模板。

检查 KeyDB 是否正常工作#

外部程序使用 TCP 套接字和 KeyDB 特定协议与 KeyDB 通信。该协议在不同编程语言的 KeyDB 客户端库中实现。然而,为了让 KeyDB 的使用更简单,KeyDB 提供了一个命令行工具,可以用来向 KeyDB 发送命令。这个程序叫做 keydb-cli

要检查 KeyDB 是否正常工作,首先要做的是使用 keydb-cli 发送一个 PING 命令。

$ keydb-cli ping
PONG

运行 keydb-cli 后跟命令名称及其参数,会将此命令发送到运行在 localhost 端口 6379 上的 KeyDB 实例。您可以更改 keydb-cli 使用的主机和端口,只需尝试 --help 选项来查看使用信息。

另一种有趣的运行 keydb-cli 的方式是不带参数:程序将以交互模式启动,您可以输入不同的命令并查看它们的回复。

$ keydb-cli
KeyDB 127.0.0.1:6379> ping
PONG
KeyDB 127.0.0.1:6379> set mykey somevalue
OK
KeyDB 127.0.0.1:6379> get mykey
"somevalue"

此时您已经可以与 KeyDB 通信了。现在是时候暂停一下本教程,开始学习《KeyDB 数据类型十五分钟入门》,以了解一些 KeyDB 命令。或者,如果您已经了解一些基本的 KeyDB 命令,可以继续阅读。

保护 KeyDB 安全#

默认情况下,KeyDB 绑定到所有接口,并且没有任何身份验证。如果您在一个与外部互联网和攻击者隔离的、受严格控制的环境中使用 KeyDB,这没问题。但是,如果未加固的 KeyDB 暴露在互联网上,将存在巨大的安全隐患。如果您不 100% 确定您的环境是安全的,请检查以下步骤以提高 KeyDB 的安全性,这些步骤按安全级别递增的顺序列出。

  1. 确保 KeyDB 用于监听连接的端口(默认为 6379,如果以集群模式运行 KeyDB,则还包括 16379,以及 Sentinel 的 26379)已设置防火墙,以防止外部世界访问 KeyDB。
  2. 使用一个配置文件,在其中设置 bind 指令,以确保 KeyDB 只监听您正在使用的尽可能少的网络接口。例如,如果您只在同一台计算机上本地访问 KeyDB,则只监听环回接口(127.0.0.1),以此类推。
  3. 使用 requirepass 选项增加一个额外的安全层,这样客户端就需要使用 AUTH 命令进行身份验证。
  4. 如果您的环境需要加密,请使用 spiped 或其他 SSL 隧道软件来加密 KeyDB 服务器和 KeyDB 客户端之间的流量。

在您的应用程序中使用 KeyDB#

当然,仅从命令行界面使用 KeyDB 是不够的,我们的目标是在您的应用程序中使用它。为此,您需要为您的编程语言下载并安装一个 KeyDB 客户端库。您可以在此页面上找到适用于不同语言的 Redis 客户端的完整列表,这些客户端也适用于 KeyDB

KeyDB 持久化#

您可以在“命令/持久化”文档中了解更多信息,但 для 快速入门,重要的是要了解,默认情况下,如果您使用默认配置启动 KeyDB,KeyDB 只会偶尔自动保存数据集(例如,如果您的数据至少有 100 次更改,则至少在五分钟后),所以如果您希望数据库在重启后能够持久化并重新加载,请确保在每次需要强制生成数据集快照时手动调用 SAVE 命令。否则,请确保使用 SHUTDOWN 命令关闭数据库。

$ keydb-cli shutdown

这样,KeyDB 将确保在退出前将数据保存到磁盘。

正确安装 KeyDB#

从命令行运行 KeyDB 仅适用于体验或开发。但是,总有一天您需要在真实的服务器上运行一些实际的应用程序。对于这种用法,您有两种不同的选择:

  • 使用 screen 运行 KeyDB。
  • 在您的 Linux 系统中以正确的方式使用 init 脚本安装 KeyDB,这样在重启后一切都会自动启动。

强烈建议使用 init 脚本进行正确安装。以下说明可用于在基于 Debian 或 Ubuntu 的发行版上,使用 KeyDB 自带的 init 脚本进行正确安装。

我们假设您已经将 keydb-serverkeydb-cli 可执行文件复制到 /usr/local/bin 下。

  • 创建一个目录来存放您的 KeyDB 配置文件和数据:

    sudo mkdir /etc/KeyDB
    sudo mkdir /var/KeyDB
  • 将 KeyDB 发行包 utils 目录下的 init 脚本复制到 /etc/init.d。我们建议用您运行此 KeyDB 实例的端口号来命名它。例如:

    sudo cp utils/KeyDB_init_script /etc/init.d/KeyDB_6379
  • 编辑 init 脚本。

    sudo vi /etc/init.d/KeyDB_6379

确保根据您使用的端口相应地修改 KeyDBPORT。pid 文件路径和配置文件名都依赖于端口号。

  • 将 KeyDB 发行包根目录下的模板配置文件复制到 /etc/KeyDB/,并以端口号命名,例如:

    sudo cp keydb.conf /etc/KeyDB/6379.conf
  • 在 /var/KeyDB 内创建一个目录,用作此 KeyDB 实例的数据和工作目录:

    sudo mkdir /var/KeyDB/6379
  • 编辑配置文件,确保进行以下更改:

    • daemonize 设置为 yes(默认为 no)。
    • pidfile 设置为 /var/run/KeyDB_6379.pid(如果需要,请修改端口)。
    • 相应地更改 port。在我们的示例中,不需要更改,因为默认端口已经是 6379。
    • 设置您偏好的 loglevel
    • logfile 设置为 /var/log/KeyDB_6379.log
    • dir 设置为 /var/KeyDB/6379(非常重要的一步!)
  • 最后,使用以下命令将新的 KeyDB init 脚本添加到所有默认运行级别:

    sudo update-rc.d KeyDB_6379 defaults

大功告成!现在您可以尝试运行您的实例了:

sudo /etc/init.d/KeyDB_6379 start

确保一切按预期工作:

  • 尝试用 keydb-cli ping 您的实例。
  • 使用 keydb-cli save 进行测试保存,并检查转储文件是否正确存储在 /var/KeyDB/6379/ 中(您应该会找到一个名为 dump.rdb 的文件)。
  • 检查您的 KeyDB 实例是否正确地在日志文件中记录日志。
  • 如果这是一台新机器,您可以毫无问题地进行测试,请确保重启后一切仍然正常工作。

注意:在上述说明中,我们跳过了许多您可能想要更改的 KeyDB 配置参数,例如,使用 AOF 持久化代替 RDB 持久化,或者设置复制等。请务必阅读示例 keydb.conf 文件(其中有大量注释)以及您可以在本网站上找到的其他文档以获取更多信息。