mac redis(手把手讲解)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

截止目前, 星球 内专栏累计输出 90w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 3100+ 小伙伴加入学习 ,欢迎点击围观

前言

在现代互联网开发中,Redis 作为一种高性能的内存数据库,凭借其灵活的数据结构和快速的读写能力,已成为开发者工具链中的重要一环。对于使用 Mac 系统的开发者而言,无论是本地开发环境搭建、调试缓存逻辑,还是进行性能测试,掌握 mac Redis 的安装、配置与使用技巧都至关重要。本文将从零开始,以循序渐进的方式讲解如何在 Mac 环境下高效利用 Redis,并通过实际案例和代码示例帮助读者快速上手。


安装与配置

2.1 安装 Redis

在 Mac 上安装 Redis 最简单的方式是通过 Homebrew 包管理器。打开终端并执行以下命令:

brew install redis  

安装完成后,可以通过以下命令启动 Redis 服务:

redis-server  

此时,Redis 默认会在 6379 端口运行。若需验证安装是否成功,可以通过客户端连接:

redis-cli ping  

若返回 PONG,则表示 Redis 已正常运行。

2.2 配置 Redis

默认配置下,Redis 的监听地址为 127.0.0.1,端口为 6379。为了安全性和灵活性,建议修改配置文件。配置文件路径通常为 /usr/local/etc/redis.conf。以下是常见配置项的调整示例:

修改监听地址与端口

bind 0.0.0.0  # 允许远程连接  
port 6380     # 修改默认端口(可选)  

启用密码验证

requirepass your_secure_password  # 设置访问密码  

修改完成后,重启 Redis 服务使配置生效:

redis-server /usr/local/etc/redis.conf  

Redis 基础命令与数据类型

3.1 基础操作命令

连接与验证

通过 redis-cli 连接 Redis 服务:

redis-cli -h 127.0.0.1 -p 6379 -a your_secure_password  

常用命令示例

命令作用
SET key value存储键值对
GET key获取键对应的值
DEL key删除指定键
EXPIRE key 30设置键的过期时间为 30 秒

示例代码

127.0.0.1:6379> SET username "john_doe"  
OK  
127.0.0.1:6379> GET username  
"john_doe"  

3.2 数据类型详解

Redis 支持多种数据类型,每种类型对应不同的使用场景。以下通过比喻和代码示例说明:

3.2.1 字符串(String)

比喻:字符串是 Redis 的“基础积木”,适合存储简单键值对,如用户 ID、计数器等。

SET counter 0  
INCR counter  # 将 counter 值加 1  

3.2.2 哈希(Hash)

比喻:哈希像一个“对象容器”,适合存储对象的多个字段。例如,存储用户信息:

HSET user:123 name "Alice" age 30  
HGETALL user:123  

3.2.3 列表(List)

比喻:列表是一个“队列/栈”,支持在两端快速插入和弹出元素。例如,实现消息队列:

LPUSH messages "Hello"  # 左侧插入  
RPUSH messages "World"  # 右侧插入  
LRANGE messages 0 -1    # 获取所有元素  

3.2.4 集合(Set)

比喻:集合是“无序且唯一”的元素集合,适合去重操作。例如,记录用户点赞的文章:

SADD articles 1001 1002 1003  
SCARD articles  # 返回集合元素数量  

3.2.5 有序集合(Sorted Set)

比喻:有序集合是带“分数”权重的集合,适合排行榜等场景。例如,记录用户积分:

ZADD scores 85 Alice 90 Bob  # 分数为键,用户为值  
ZRANGE scores 0 -1 BYSCORE  # 按分数排序  

持久化与性能优化

4.1 Redis 持久化机制

Redis 的数据默认存储在内存中,若服务器宕机,数据可能丢失。因此,需通过 持久化 将内存数据写入磁盘。

4.1.1 RDB(快照持久化)

RDB 是通过定时生成数据库快照文件(.rdb)实现的。配置示例:

save 900 1    # 每 900 秒(15 分钟)若至少有 1 个键变更则触发保存  
save 300 10   # 每 300 秒(5 分钟)若至少有 10 个键变更则触发保存  

4.1.2 AOF(追加文件持久化)

AOF 将每个写操作记录到日志文件(.aof)中,恢复时重新执行命令。配置示例:

appendonly yes          # 启用 AOF  
appendfsync everysec    # 每秒同步一次(平衡性能与安全性)  

4.2 性能优化策略

4.2.1 内存优化

通过 maxmemory 参数限制 Redis 内存使用量,并配置淘汰策略:

maxmemory 256mb         # 最大内存 256MB  
maxmemory-policy allkeys-lru  # 使用 LRU 算法淘汰未使用的键  

4.2.2 连接池复用

在编程语言客户端(如 Python)中,使用连接池避免频繁创建连接:

import redis  
pool = redis.ConnectionPool(host='localhost', port=6379, db=0)  
r = redis.Redis(connection_pool=pool)  

常见问题与解决方案

5.1 端口占用或连接失败

若启动 Redis 时提示端口占用,可通过以下命令查找并终止进程:

lsof -i :6379  # 查看占用 6379 端口的进程  
kill -9 <PID>  # 终止进程(替换 <PID> 为实际进程号)  

5.2 密码验证失败

若配置了密码但连接时提示 NOAUTH,需检查:

  1. 客户端是否通过 -a 参数传递密码;
  2. 配置文件中的 requirepass 是否拼写正确。

5.3 数据过大导致内存溢出

若内存不足,可尝试:

  • 使用淘汰策略(如 allkeys-lru)自动清理旧数据;
  • 将冷数据迁移到磁盘数据库(如 MySQL);
  • 增加物理内存或使用 Redis 集群分片。

结论

通过本文,读者已掌握了在 Mac 环境下从安装、配置到高级功能的全流程操作。mac Redis 不仅是本地开发的得力工具,也为分布式系统设计提供了重要支持。建议读者通过实际项目(如缓存 API 响应、实现排行榜)进一步巩固所学知识。未来,随着对 Redis 事务、Lua 脚本等高级功能的探索,开发者将能更充分地释放其性能潜力。

(全文约 1800 字)

最新发布