Redis 是一种内存为基础的键值数据存储,广泛应用于需要快速数据处理的各种环境。它主要用于缓存、任务队列、会话管理等,借助数据持久化功能,也可以作为持久数据存储。在这第一篇文章中,我们将了解 Redis 的基本概念和主要配置文件 redis.conf

1. Redis 的基本概念和特点

Redis 是以 内存 (RAM) 存储数据的 NoSQL 数据库,因其高效的速度而备受青睐。由于这个特点,它被广泛应用于以下场合:

  • 缓存 (Cache): 为了提高 Web 应用程序的数据响应速度,将频繁调用的数据存储在 Redis 中以便快速提取。
  • 会话存储 (Session Storage): 快速访问和管理用户会话信息。
  • 任务队列 (Queue): 作为异步任务队列,与 Celery 等库结合,进行任务调度并快速处理。
Redis 关键概念信息图

Redis 的主要优势

  • 速度: 将数据存储在内存中,可以快速读取和写入,最小化响应延迟。
  • 支持多种数据结构: 除了简单的键值存储外,还支持列表、集合、哈希表等多种结构。
  • 可扩展性: 通过集群配置,扩展数据存储容量和处理性能。

Redis 的易失性与数据持久化选项

Redis 默认设计为处理易失性数据,这意味着在服务器重启时,存储在内存中的数据可能会丢失。为了解决这个问题,Redis 提供了两种数据持久化选项。

  • RDB (Redis Database) 快照: 每隔一定周期将内存中的数据以快照形式存储到磁盘。
  • AOF (Append-Only File): 将所有写操作记录到磁盘,以便在服务器重启时恢复数据。

如果只是将 Redis 用作缓存,则对数据易失性无需过多担忧,但如果需要持久化数据,则可利用以上选项。

2. Redis 配置文件 (redis.conf)

Redis 的主要配置文件 redis.conf 可以详细设置 Redis 服务器的操作方式。通常位于 /etc/redis/redis.conf 路径下,并在 Redis 安装时自动生成。

redis.conf 文件的主要配置项

Redis 配置文件结构图
1) 网络设置
  • port: 设置 Redis 服务器使用的端口。默认端口为 6379。
port 6379
  • bind: 指定 Redis 服务器接受的 IP 地址。默认值为 127.0.0.1 只允许本地连接。
bind 127.0.0.1
2) 安全设置
  • requirepass: 设置访问 Redis 服务器所需的密码。如果省略,则可以不需要密码连接。
requirepass yourpassword
  • protected-mode: 保护 Redis 免受外部访问的模式,默认值为 yes,仅允许本地连接。
3) 内存管理
  • maxmemory: 设置 Redis 使用的最大内存容量。如果没有限制,则使用系统内存的允许上限。
maxmemory 256mb
  • maxmemory-policy: 当内存满时,决定删除哪些数据的策略。allkeys-lru 移除最长时间未使用的数据。
maxmemory-policy allkeys-lru
4) 数据持久化设置
  • save: 定期生成 RDB 快照并保存到磁盘。例如,以下设置将在 60 秒内如果有超过 1000 个键变化时生成快照。
save 60 1000
  • appendonly: 激活 AOF 模式以提高数据持久性。设置为 yes 时,所有写操作将记录到 AOF 文件。
appendonly yes
5) 日志与调试设置
  • loglevel: 设置日志级别。notice 只记录普通消息,而 debug 会记录所有调试信息。
loglevel notice
  • logfile: 指定日志文件的路径。默认值为 stdout,不会记录到单独的文件。
logfile /var/log/redis/redis.log

3. Redis 配置更改后的应用方法

修改配置文件中所需的选项后,可以重启 Redis 服务器应用新设置。

sudo systemctl restart redis-server

更改设置后,可以使用以下命令检查 Redis 是否正常运行。

redis-cli ping

PONG 返回表示 Redis 服务器正常运行。

总结

我们了解了 Redis 的基本概念和配置文件的主要条目。通过配置,Redis 的性能和持久性能够得到细致调节,因此根据使用目的优化设置非常重要。在下一篇文章中,我们将深入探讨 Redis 的数据持久化选项 RDB 和 AOF。