Redis 本地主机

2025年5月18日 | 阅读 10 分钟

引言

Redis 是一种内存信息存储功能,可作为通信代理、数据库和缓存。Redis 意为远程字典服务器。它可以处理广泛的数据结构,如位图、字符串、哈希值、图、集合、有序集合和 HyperLogLog。由于其效率和速度,它经常用于需要快速处理和检索数据的实时应用程序。

对于希望在将代码投入生产环境之前进行测试和调试、构建应用程序或探索其功能的开发人员来说,这是必不可少的一步。本文将介绍如何在本地主机上安装和配置 Redis,介绍重要概念、命令和用例,并介绍最大化 Redis 本地性能的最佳方法。

设置 Redis 本地主机

前提条件

在安装 Redis 本地主机之前,请确保满足以下先决条件:

  • 操作系统:操作系统 (OS) 控制硬件资源并创建软件运行所需的设置。安装 Redis(一种内存数据结构存储)需要合适的操作系统,如 Windows、Linux 或 macOS。Redis 运行顺畅,因为 OS 负责文件系统、网络和进程管理。开发人员可以通过在本地主机上配置 Redis 来进行本地数据库测试和管理。Redis 的可靠性直接受 OS 性能和稳定性的影响,因此选择理想的测试和开发环境至关重要。
  • 包管理器:它是配置本地 Redis 的一项重要工具。它自动化软件包的安装、升级、配置和删除。通过解析依赖项并从存储库检索所需文件,APT(在 Debian/Ubuntu 上)或 YUM(在 CentOS/RHEL 上)等包管理器简化了 Redis 的安装过程。用户可以通过单个命令安装 Redis 并有效地管理其配置文件。通过确保 Redis 配置正确且具有最新版本以及所有必要的组件,可以更轻松地在本地启动 Redis 服务器。
  • 开发工具:需要多种开发工具来在本地主机上设置 Redis,并确保安装和配置过程顺利。要安装 Redis,首先需要一个包管理器,例如 macOS 上的 `brew` 或 Ubuntu 上的 `apt-get`。接下来,需要一个文本编辑器(如 `vim` 或 `nano`)来修改配置文件 (`redis.conf`)。此外,像 `systemctl` 这样的程序可以帮助将 Redis 作为后台服务进行管理。虽然 `netstat` 验证 Redis 在正确的端口(默认为 6379)上运行,但 `redis-cli` 等监视工具可帮助测试连接和命令。这些实用程序简化了本地 Redis 设置过程。

在 Linux 上安装 Redis

  • 更新包列表:要在本地主机上安装 Redis,首先需要使用命令更新包列表,该命令写为 `sudo apt-get update`。此命令会更新本地存储的包索引,让您了解可用的最新软件版本。在开始安装 Redis 之前,必须刷新包列表,因为某些包可能已过时或丢失。
  • 安装 Redis:在安装 Redis 之前,用户需要从官方网站下载 Redis 包。解压文件并进入 Redis 目录,然后输入 `make`。在此之后,可以使用命令 `src/redis-server` 启动 Redis 服务器。Redis 现在将在您的本地计算机上默认可用,并已准备好使用。
  • 启动 Redis:对于安装后的 Redis,可以在终端中使用命令 `redis-server` 在本地主机上启动 Redis。这会启动 Redis 服务器,您可以使用 Redis-cli(命令行界面)在本地连接到它。确保默认配置文件设置正确,Redis 将在 `localhost: 当其初始化期间没有按下 Meta 键时,“2^13 - 1”等于 8191,如果按下 Meta 键,则默认为“0”,前面的数字为 6379。
  • 启用 Redis 在启动时启动:最简单的方法是,要允许 Redis 在本地服务器上安装后在启动时启动,请使用命令 `sudosystemctl enable redis-server`。这可确保 Redis 在系统启动时立即启动,并在访问本地安装的 Redis 方面提供了多种灵活性。在实际启用之前,请确保 Redis 已正确安装并正确配置。
  • 验证安装:要检查本地主机上的 Redis 安装,请键入命令 `redis-server` 来启动 Redis 服务器。然后,打开另一个终端,您可以使用命令 `redis-cli` 连接到它。要检查连接是否成功,请运行 `PING` 命令,Redis 会响应 `PONG`。确保在安装过程中没有出错。

配置本地主机上的 Redis

Redis 有一个名为 Redis.conf 的配置文件,可让您更改其行为。大多数本地开发需求都可以满足默认配置,但是,根据您的具体用例,您可能需要调整某些设置。

关键配置设置

  • 'bind':事实上,'bind 配置设置'是网络访问控制最重要的方面之一。在名为 redis.conf 的 Redis 配置文件中,bind 语句决定了 Redis 将要侦听连接的 IP 地址。默认情况下,它可以配置为仅接受来自本地主机的连接,或来自回环接口上的任何 IP 地址,使用 127.0.0.1(localhost),只能从本地计算机访问。对于连接到外部网络,还可以提供更多 IP 地址或 0.0.0.0。Bind 必须配置正确才能保护 Redis,因为配置不当可能导致系统被公开访问,尤其是在 Redis 托管在公共服务器上时。
  • 'protected-mode':这是 Redis 的另一个重要设置,尤其是在 'localhost' 上运行 Redis 时。为防止 Redis 服务器默认暴露在互联网上,保护模式会阻止访问 Redis IP 地址,除非通过配置。如果 Redis 绑定到本地主机地址且未配置身份验证密码,则会启用保护模式。这有助于最大限度地减少入侵者的访问,从而最大限度地减少被黑客攻击的事件。要关闭保护模式,应该将 Redis 绑定到 IPv4 地址,或使用密码保护,并确保服务器只能由预期的客户端访问。
  • 'port':这是一个实时数据结构存储,端口配置对于确定网络访问点很重要。默认情况下,Redis 设置为侦听本地主机连接,仅在端口号 6379 上接受这些连接。此端口设置使得 Redis 能够侦听和处理来自客户端的其他请求,以及接收和响应命令。它设置为 6379,但您可以在 Redis 配置文件 (redis.conf) 中更改它。当您想增强 Redis 数据库中的数据安全性或架构时,可以进行配置。此页面还将指导您如何正确配置端口以保护您本地工作站或整个网络内的 Redis 通信和数据传输。
  • 'requirepass':其必需密码的访问提高了安全性。启用后,在执行指令之前,连接到 Redis 服务器的每个客户端都必须使用提供的密码进行身份验证。这可以保护存储在 Redis 中的私人信息免受不必要的访问。通过将 `requirepass your_password` 行添加到 Redis 配置文件来设置 `requirepass`。重启 Redis 服务器后,客户端需要使用 `AUTH your_password` 命令进行身份验证。您可以采用这种易于使用但功能强大的方法来保护您在本地主机或任何其他环境中运行的 Redis 实例。
  • 'maxmemory':此重要设置控制 Redis 在本地主机上允许使用的最大 RAM。当达到指定的内存限制时,Redis 会采用逐出策略来释放空间。根据所选策略,这可能涉及删除最近未使用的键、设置了到期日期的键或其他技术。正确配置 `maxmemory` 可确保有效利用内存,并有助于避免内存不足问题。必须在本地服务器上正确调整此选项,以最大化 Redis 的速度并保持系统稳定。
  • 'append-only':当启用时,Redis 通过将每个操作写入 append-only 文件 (AOF) 来确保数据即使在崩溃时也能被保留。您可以通过在 Redis.conf 文件中设置 `append-only yes` 来配置此参数。每个写操作都会记录在 AOF 文件中,这使得 Redis 在重新启动时可以重新组装数据集。虽然这提供了持久性,但额外的 I/O 操作可能会对性能产生轻微的负面影响。在本地配置中,为了提高数据安全性,应启用 append-only。

基本命令

Redis 提供了一个简单的命令行界面来与数据库进行交互。以下是一些基本命令,供您入门。

连接到 Redis

一旦连接,我们就可以开始使用命令了。

字符串命令

  • SET:它将存储键值对。
  • GET将检索与键关联的值。
  • DEL:将删除键。
  • INCR:键的值将增加 1。
  • DECR:键的值将减少 1。

列表命令

  • LPUSH:将值添加到列表的开头。
  • RPUSH:将值追加到列表的末尾
  • LPOP:可以删除并返回列表的第一个元素。
  • RPOP:可以删除并返回列表的最后一个元素
  • LRANGE:获取列表中的元素范围

哈希命令

  • HSET:设置哈希中字段的值。
  • HGET:获取哈希中字段的值。
  • HDEL:可以从哈希中删除一个字段。
  • HGETALL:可以检索哈希的所有字段和值。

集合命令

  • SADD:将成员添加到集合中。
  • SREM:可以从集合中删除一个成员。
  • SMEMBERS:获取集合中的所有成员。
  • SISMEMBER:检查一个值是否是集合的成员。

有序集合命令

  • ZADD:向有序集合添加一个带有分数的成员。
  • ZRANGE:获取分数范围内的成员。
  • ZREM:从有序集合中删除一个成员。
  • ZSCORE:获取成员的分数。

用例

  • 缓存:它提供了一种非常有效的方法来最大化应用程序的速度。Redis 是一种内存数据存储,可以快速检索数据,从而减轻主数据库的负担。当频繁访问的数据被缓存在本地主机上时,应用程序可以从较低的延迟和更快的响应时间中受益。这对于需要大量读取并且经常请求相同数据的应用程序尤其有用。Redis 灵活支持多种数据格式,包括列表、哈希和字符串,可用于各种缓存算法。它保证了可扩展性、有效的资源利用率和流畅的用户体验。
  • 会话存储:对于 Redis 来说,这是一个基本用例,尤其是在 Web 应用程序中,用户会话管理至关重要。Redis 是一种高性能的内存数据存储,在本地主机上运行,可以轻松快速地进行会话管理。Redis 在用户登录时存储用户的会话数据,以便为将来的请求进行快速检索和更新。通过此配置,可以提高应用程序的用户体验和可扩展性,确保会话数据在多个实例之间可用且一致。由于其键值格式并支持数据过期,Redis 是管理会话存储的最佳选择。
  • 实时分析:它使企业能够立即处理和评估数据。Redis 的内存数据结构允许企业以低延迟管理海量数据。此配置使得实时跟踪和分析用户活动、交易和其他重要信息成为可能。由于其快速的数据访问和对各种数据类型的支持,Redis 非常适合实时分析,它促进了快速决策和改进的用户体验。需要即时数据洞察的应用程序可以从本地主机设置提供的强大解决方案中受益匪浅,该设置进一步提高了安全性和控制力。
  • 排行榜和计数:开发人员可以通过使用 Redis 本地主机在竞争性或游戏场景中有效地处理实时排行榜。Redis 的有序集合便于快速更新和检索,从而可以轻松地根据分数对玩家或产品进行排名。Redis 还可以对其他活动进行准确计数,包括监视页面浏览量、用户操作和事件发生。由于其低延迟和内存架构,它非常适合需要快速反馈的应用程序。总而言之,Redis 本地主机提供了一种可靠、可扩展的解决方案,用于管理实时排行榜和执行计数任务。
  • 消息队列:因为它快速且易于使用,所以经常用于消息队列。Redis 的消息队列功能通过实现应用程序之间的异步通信来提高可扩展性和可靠性。消息通过 Redis 列表发送到队列,接收者以自己的速度处理它们。通过此配置可以完成任务计划、实时通信和日志收集等任务,该配置通常在本地主机上用于开发。由于其原子操作能够确保消息按顺序处理且无重复,Redis 是分布式系统中有效消息队列的可靠选择。

下一主题Redis vs Memcached