【Redis】Redis基础与测试环境搭建(Mac版)入门

Redis第一阶段:Redis基础与测试环境搭建(Mac版)

1. Redis概述

Redis是什么?

Redis(Remote Dictionary Server)是一个开源的、基于内存的键值存储系统,支持多种数据结构。它提供了高性能、高可用性和丰富的数据结构,常被用作:

  • 缓存:缓解数据库压力,提升应用响应速度
  • 消息队列:通过List、Pub/Sub等实现异步消息处理
  • 会话存储:存储用户会话信息,支持分布式会话
  • 实时排行榜:使用Sorted Set实现实时排序
  • 地理空间数据:存储和查询地理位置信息

测试工程师为何要学Redis?

  • 性能测试:模拟缓存层,验证系统在高并发下的缓存命中率
  • 数据验证:检查Redis中的数据一致性,验证数据持久化机制
  • 故障模拟:模拟Redis故障场景,测试系统的容错能力
  • 中间件测试:验证Redis集群、主从复制等功能的正确性
  • 自动化测试:使用Redis存储测试数据或测试状态

2. 环境搭建与配置

Mac单机部署

方法一:使用Homebrew安装(推荐)
bash 复制代码
# 1. 安装Homebrew(如果未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 2. 安装Redis
brew install redis

# 3. 启动Redis服务
brew services start redis  # 后台启动
# 或
redis-server /usr/local/etc/redis.conf  # 前台启动

# 4. 验证安装
redis-cli ping  # 应返回 PONG
方法二:使用Docker安装
bash 复制代码
# 1. 安装Docker Desktop for Mac
# 访问 https://www.docker.com/products/docker-desktop

# 2. 拉取Redis镜像
docker pull redis:latest

# 3. 运行Redis容器
docker run --name my-redis -p 6379:6379 -d redis

# 4. 进入Redis容器
docker exec -it my-redis redis-cli
方法三:源码编译安装
bash 复制代码
# 1. 下载Redis源码
curl -O https://download.redis.io/redis-stable.tar.gz

# 2. 解压并编译
tar -xzvf redis-stable.tar.gz
cd redis-stable
make

# 3. 测试编译结果
make test

# 4. 安装到系统目录
sudo make install

配置文件解读(redis.conf)

持久化相关参数
bash 复制代码
# RDB持久化配置
save 900 1      # 900秒内至少有1个key被修改则保存
save 300 10     # 300秒内至少有10个key被修改则保存
save 60 10000   # 60秒内至少有10000个key被修改则保存

dbfilename dump.rdb  # RDB文件名
dir ./              # 持久化文件存储目录

# AOF持久化配置
appendonly yes      # 开启AOF
appendfilename "appendonly.aof"  # AOF文件名
appendfsync everysec  # 每秒同步一次
内存相关参数
bash 复制代码
maxmemory 100mb  # 最大内存限制
maxmemory-policy allkeys-lru  # 内存淘汰策略
网络相关参数
bash 复制代码
bind 127.0.0.1  # 绑定的IP地址
port 6379       # 监听端口
protected-mode yes  # 保护模式

客户端工具使用

1. redis-cli(命令行工具)
bash 复制代码
# 基本连接
redis-cli                    # 连接本地Redis
redis-cli -h host -p port   # 连接远程Redis
redis-cli -a password       # 使用密码连接

# 常用参数
redis-cli --stat            # 显示实时统计信息
redis-cli --bigkeys         # 查找大key
redis-cli --scan            # 扫描所有key
2. RedisInsight(官方GUI工具)
bash 复制代码
# 安装
brew install --cask redisinsight

# 或从官网下载:https://redis.com/redis-enterprise/redis-insight/
3. Another Redis Desktop Manager(第三方GUI)
bash 复制代码
# 安装
brew install --cask another-redis-desktop-manager

3. 基础命令与数据操作

五大核心数据结构

1. String(字符串)
bash 复制代码
# 增/改
SET user:1000 "John Doe"
SETEX session:abc 3600 "user_data"  # 设置过期时间
MSET key1 "value1" key2 "value2"    # 批量设置

# 查
GET user:1000
MGET key1 key2                      # 批量获取
STRLEN user:1000                    # 获取字符串长度

# 删
DEL user:1000
2. Hash(哈希)
bash 复制代码
# 增/改
HSET user:1001 name "Alice" age 30 email "alice@test.com"
HMSET user:1002 name "Bob" age 25 email "bob@test.com"

# 查
HGET user:1001 name
HGETALL user:1001                   # 获取所有字段
HKEYS user:1001                     # 获取所有字段名
HVALS user:1001                     # 获取所有值

# 删
HDEL user:1001 email
3. List(列表)
bash 复制代码
# 增
LPUSH mylist "item1" "item2"       # 左侧插入
RPUSH mylist "item3" "item4"       # 右侧插入
LINSERT mylist BEFORE "item2" "new_item"  # 指定位置插入

# 查
LRANGE mylist 0 -1                  # 获取所有元素
LINDEX mylist 1                     # 获取指定位置元素
LLEN mylist                         # 获取列表长度

# 删
LPOP mylist                         # 左侧弹出
RPOP mylist                         # 右侧弹出
LREM mylist 1 "item1"              # 删除指定元素
4. Set(集合)
bash 复制代码
# 增
SADD tags "java" "python" "redis"
SADD tags2 "redis" "go" "docker"

# 查
SMEMBERS tags                       # 获取所有成员
SISMEMBER tags "java"              # 检查成员是否存在
SCARD tags                          # 获取成员数量

# 集合运算
SINTER tags tags2                   # 交集
SUNION tags tags2                   # 并集
SDIFF tags tags2                    # 差集

# 删
SREM tags "java"                    # 删除成员
5. Sorted Set(有序集合)
bash 复制代码
# 增/改
ZADD leaderboard 100 "player1" 200 "player2" 150 "player3"
ZINCRBY leaderboard 50 "player1"    # 增加分数

# 查
ZRANGE leaderboard 0 -1 WITHSCORES  # 按分数升序获取
ZREVRANGE leaderboard 0 -1 WITHSCORES # 按分数降序获取
ZSCORE leaderboard "player1"        # 获取成员分数
ZRANK leaderboard "player1"         # 获取成员排名(升序)
ZREVRANK leaderboard "player1"      # 获取成员排名(降序)

# 删
ZREM leaderboard "player2"
ZREMRANGEBYRANK leaderboard 0 1     # 删除排名范围

通用命令

bash 复制代码
# Key操作
KEYS user:*                         # 模式匹配(生产环境慎用)
SCAN 0 MATCH user:* COUNT 10        # 安全扫描
EXISTS key1                         # 检查key是否存在
EXPIRE key1 60                      # 设置过期时间(秒)
TTL key1                            # 查看剩余生存时间
TYPE key1                           # 查看数据类型

# 批量操作
MGET key1 key2 key3
DEL key1 key2 key3

# 事务
MULTI                               # 开启事务
SET key1 "value1"
SET key2 "value2"
EXEC                                # 执行事务

# 管道操作
echo -e "SET key1 value1\nGET key1" | redis-cli --pipe

数据备份与恢复

RDB文件操作
bash 复制代码
# 手动触发RDB备份
redis-cli SAVE                      # 阻塞式保存
redis-cli BGSAVE                   # 后台保存

# 查看RDB文件信息
redis-check-rdb dump.rdb

# 恢复数据(停止Redis服务后)
cp dump.rdb /usr/local/var/db/redis/  # 复制备份文件到Redis数据目录
redis-server /usr/local/etc/redis.conf  # 启动Redis
AOF文件操作
bash 复制代码
# AOF重写(压缩AOF文件)
redis-cli BGREWRITEAOF

# 检查AOF文件
redis-check-aof appendonly.aof

# 修复AOF文件
redis-check-aof --fix appendonly.aof

# 将AOF转换为RDB
redis-cli --rdb dump.rdb
数据迁移
bash 复制代码
# 导出数据
redis-cli --rdb dump.rdb

# 导入数据(先停止目标Redis服务,复制文件后启动)

测试环境验证脚本

bash 复制代码
#!/bin/bash
# test_redis_basic.sh

echo "=== Redis基础功能测试 ==="

# 测试连接
echo "1. 测试连接..."
redis-cli ping

# 测试String
echo -e "\n2. 测试String类型..."
redis-cli SET test:string "Hello Redis"
redis-cli GET test:string

# 测试Hash
echo -e "\n3. 测试Hash类型..."
redis-cli HSET test:hash field1 "value1" field2 "value2"
redis-cli HGETALL test:hash

# 测试过期时间
echo -e "\n4. 测试TTL..."
redis-cli SETEX test:ttl 10 "expire in 10 seconds"
redis-cli TTL test:ttl

# 清理测试数据
echo -e "\n5. 清理测试数据..."
redis-cli DEL test:string test:hash test:ttl

echo -e "\n=== 测试完成 ==="

环境验证清单

  1. Redis服务已启动并运行正常
  2. redis-cli可以正常连接
  3. GUI工具可以成功连接
  4. 五大数据结构的基本操作正常
  5. 持久化配置已正确设置
  6. 备份恢复流程已验证

后续学习建议

  • 学习Redis事务和管道
  • 了解Redis持久化机制(RDB/AOF)的优缺点
  • 掌握Redis主从复制配置
  • 学习Redis哨兵和集群部署
  • 实践Redis在性能测试中的应用场景

通过本阶段的学习,测试工程师可以搭建完整的Redis测试环境,掌握基本的Redis操作,为后续的性能测试、数据验证和故障模拟打下坚实基础。

相关推荐
素玥4 分钟前
实训5 python连接mysql数据库
数据库·python·mysql
jnrjian11 分钟前
text index 查看index column index定义 index 刷新频率 index视图
数据库·oracle
瀚高PG实验室29 分钟前
审计策略修改
网络·数据库·瀚高数据库
言慢行善1 小时前
sqlserver模糊查询问题
java·数据库·sqlserver
韶博雅1 小时前
emcc24ai
开发语言·数据库·python
有想法的py工程师1 小时前
PostgreSQL 分区表排序优化:Append Sort 优化为 Merge Append
大数据·数据库·postgresql
迷枫7122 小时前
达梦数据库的体系架构
数据库·oracle·架构
夜晚打字声2 小时前
9(九)Jmeter如何连接数据库
数据库·jmeter·oracle
Chasing__Dreams2 小时前
Mysql--基础知识点--95--为什么避免使用长事务
数据库·mysql
风吹迎面入袖凉2 小时前
【Redis】Redis的五种核心数据类型详解
java·redis