引言
上一篇我们理解了为什么需要Redis,现在是时候动手实践了。这篇文章将带你完成:
- ✅ 10分钟安装Redis
- ✅ 启动并连接Redis
- ✅ 执行第一个命令
- ✅ 理解基本操作
不需要任何前置知识,跟着操作即可。
一、安装Redis
1.1 方式一:Docker安装(推荐)
为什么推荐Docker?
- 跨平台,Windows/Mac/Linux通用
- 隔离环境,不污染系统
- 一条命令搞定,最简单
步骤:
# 1. 拉取Redis镜像(最新稳定版)
docker pull redis:7.2
# 2. 启动Redis容器
docker run -d \
--name my-redis \
-p 6379:6379 \
redis:7.2
# 3. 验证是否启动成功
docker ps | grep redis
# 4. 进入Redis客户端
docker exec -it my-redis redis-cli
持久化配置(可选):
# 创建数据目录
mkdir -p ~/redis/data
# 启动带持久化的Redis
docker run -d \
--name my-redis \
-p 6379:6379 \
-v ~/redis/data:/data \
redis:7.2 redis-server --appendonly yes
1.2 方式二:Linux系统安装
Ubuntu/Debian:
# 1. 更新软件源
sudo apt update
# 2. 安装Redis
sudo apt install redis-server
# 3. 启动Redis服务
sudo systemctl start redis-server
# 4. 设置开机自启动
sudo systemctl enable redis-server
# 5. 验证状态
sudo systemctl status redis-server
# 6. 连接Redis
redis-cli
CentOS/RHEL:
# 1. 安装EPEL源
sudo yum install epel-release
# 2. 安装Redis
sudo yum install redis
# 3. 启动Redis服务
sudo systemctl start redis
# 4. 设置开机自启动
sudo systemctl enable redis
# 5. 连接Redis
redis-cli
1.3 方式三:macOS安装
使用Homebrew:
# 1. 安装Redis
brew install redis
# 2. 启动Redis服务
brew services start redis
# 3. 连接Redis
redis-cli
# 停止Redis服务
brew services stop redis
# 重启Redis服务
brew services restart redis
1.4 方式四:源码编译(可选)
适用于需要最新版本或特定编译选项的场景:
# 1. 下载源码
wget https://download.redis.io/releases/redis-7.2.4.tar.gz
tar xzf redis-7.2.4.tar.gz
cd redis-7.2.4
# 2. 编译
make
# 3. 测试(可选)
make test
# 4. 安装
sudo make install
# 5. 启动Redis服务器
redis-server
# 6. 新开终端,连接Redis
redis-cli
二、启动和连接
2.1 启动Redis服务器
前台启动(调试用):
redis-server
# 输出:
# Ready to accept connections tcp
后台启动(推荐):
# 方式1:使用配置文件
redis-server /etc/redis/redis.conf
# 方式2:使用nohup
nohup redis-server &
# 方式3:使用systemd(Linux)
sudo systemctl start redis
2.2 连接Redis客户端
本地连接:
redis-cli
# 输出:
# 127.0.0.1:6379>
远程连接:
redis-cli -h <主机IP> -p <端口> -a <密码>
# 例如:
redis-cli -h 192.168.1.100 -p 6379 -a mypassword
测试连接:
127.0.0.1:6379> PING
PONG # 返回PONG说明连接正常
三、第一个Redis命令
3.1 基本数据操作
存储数据:
# SET命令:设置一个键值对
127.0.0.1:6379> SET name "Redis从入门到精通"
OK
# GET命令:获取键的值
127.0.0.1:6379> GET name
"Redis从入门到精通"
检查键是否存在:
127.0.0.1:6379> EXISTS name
(integer) 1 # 1表示存在,0表示不存在
127.0.0.1:6379> EXISTS notexist
(integer) 0
删除键:
127.0.0.1:6379> DEL name
(integer) 1 # 返回删除的键数量
127.0.0.1:6379> GET name
(nil) # nil表示键不存在
3.2 设置过期时间
设置10秒后过期:
127.0.0.1:6379> SET session:user123 "token_abc123"
OK
127.0.0.1:6379> EXPIRE session:user123 10
(integer) 1
# 查看剩余过期时间(秒)
127.0.0.1:6379> TTL session:user123
(integer) 8
# 10秒后查询
127.0.0.1:6379> GET session:user123
(nil) # 已过期,自动删除
设置键的同时设置过期时间:
# 方式1:EX参数(秒)
127.0.0.1:6379> SET cache:product EX 60 "商品信息"
OK
# 方式2:PX参数(毫秒)
127.0.0.1:6379> SET cache:hot PX 5000 "热点数据"
OK
# 方式3:SETEX命令
127.0.0.1:6379> SETEX cache:banner 3600 "首页Banner"
OK
3.3 批量操作
批量设置:
127.0.0.1:6379> MSET key1 "value1" key2 "value2" key3 "value3"
OK
批量获取:
127.0.0.1:6379> MGET key1 key2 key3
1) "value1"
2) "value2"
3) "value3"
四、常用管理命令
4.1 查看所有键
# 查看所有键(生产环境慎用!)
127.0.0.1:6379> KEYS *
1) "key1"
2) "key2"
3) "key3"
# 模糊匹配
127.0.0.1:6379> KEYS user:*
1) "user:1001"
2) "user:1002"
# 生产环境推荐使用SCAN
127.0.0.1:6379> SCAN 0 MATCH user:* COUNT 100
4.2 查看键的类型
127.0.0.1:6379> SET mystring "hello"
OK
127.0.0.1:6379> TYPE mystring
string
4.3 清空数据库
# 清空当前数据库
127.0.0.1:6379> FLUSHDB
OK
# 清空所有数据库
127.0.0.1:6379> FLUSHALL
OK
4.4 查看数据库信息
# 查看服务器信息
127.0.0.1:6379> INFO
# 查看内存使用情况
127.0.0.1:6379> INFO memory
# 查看统计信息
127.0.0.1:6379> INFO stats
# 查看键数量
127.0.0.1:6379> DBSIZE
(integer) 1234
五、redis-cli高级用法
5.1 执行单条命令
# 不进入交互模式,直接执行命令
redis-cli SET counter 100
redis-cli GET counter
redis-cli INCR counter
5.2 批量执行命令
# 从文件读取命令
cat commands.txt | redis-cli
# 例如commands.txt内容:
# SET key1 value1
# SET key2 value2
# GET key1
5.3 监控实时命令
# 实时监控Redis执行的所有命令
redis-cli MONITOR
# 输出:
# 1642567890.123456 [0 127.0.0.1:54321] "GET" "name"
# 1642567891.234567 [0 127.0.0.1:54322] "SET" "age" "25"
5.4 查看慢查询
# 查看慢查询日志
redis-cli SLOWLOG GET 10
# 配置慢查询阈值(微秒)
redis-cli CONFIG SET slowlog-log-slower-than 10000
# 配置慢查询日志长度
redis-cli CONFIG SET slowlog-max-len 128
六、配置文件简介
6.1 重要配置项
redis.conf主要配置:
# 绑定IP地址(0.0.0.0表示所有网卡)
bind 127.0.0.1
# 监听端口
port 6379
# 后台运行
daemonize yes
# PID文件位置
pidfile /var/run/redis_6379.pid
# 日志级别:debug、verbose、notice、warning
loglevel notice
# 日志文件
logfile /var/log/redis/redis.log
# 数据库数量
databases 16
# 设置密码
requirepass your_password
# 最大内存
maxmemory 2gb
# 内存淘汰策略
maxmemory-policy allkeys-lru
6.2 动态修改配置
# 查看配置
127.0.0.1:6379> CONFIG GET maxmemory
1) "maxmemory"
2) "2147483648"
# 修改配置
127.0.0.1:6379> CONFIG SET maxmemory 4gb
OK
# 持久化配置到文件
127.0.0.1:6379> CONFIG REWRITE
OK
七、实战练习
练习1:简单计数器
# 访问计数
127.0.0.1:6379> SET page:home:views 0
127.0.0.1:6379> INCR page:home:views
(integer) 1
127.0.0.1:6379> INCR page:home:views
(integer) 2
127.0.0.1:6379> GET page:home:views
"2"
练习2:验证码存储
# 生成验证码并设置5分钟过期
127.0.0.1:6379> SETEX captcha:13800138000 300 "8823"
OK
# 用户输入验证码后验证
127.0.0.1:6379> GET captcha:13800138000
"8823"
# 验证成功后删除
127.0.0.1:6379> DEL captcha:13800138000
(integer) 1
练习3:会话存储
# 用户登录,存储会话
127.0.0.1:6379> SETEX session:abc123 3600 "user_id:1001"
OK
# 检查会话是否有效
127.0.0.1:6379> GET session:abc123
"user_id:1001"
# 续期会话
127.0.0.1:6379> EXPIRE session:abc123 3600
(integer) 1
八、常见问题
Q1: 连接被拒绝
Error: Connection refused
解决:
- 检查Redis是否启动:
ps aux | grep redis - 检查端口是否监听:
netstat -tlnp | grep 6379 - 检查防火墙规则
Q2: 认证失败
(error) NOAUTH Authentication required
解决:
# 方式1:连接时指定密码
redis-cli -a your_password
# 方式2:连接后认证
127.0.0.1:6379> AUTH your_password
OK
Q3: 内存不足
(error) OOM command not allowed when used memory > 'maxmemory'
解决:
# 增加最大内存
CONFIG SET maxmemory 4gb
# 或配置淘汰策略
CONFIG SET maxmemory-policy allkeys-lru
九、总结
核心要点
- 安装方式:推荐Docker(简单),Linux用包管理器,macOS用Homebrew
- 启动连接:
redis-server启动服务,redis-cli连接客户端 - 基本命令:SET/GET/DEL/EXISTS/EXPIRE/TTL
- 管理命令:INFO/DBSIZE/KEYS/SCAN/FLUSHDB
- 配置文件:redis.conf包含所有配置项,可动态修改
下一步
掌握了基本操作后,下一篇我们将深入学习Redis的第一个数据类型:String类型。
- String的底层实现
- 常用命令详解
- 实战应用场景
动手练习:
- 尝试安装Redis并成功连接
- 执行本文所有命令示例
- 创建一个简单的计数器应用
- 探索INFO命令输出的各项指标
下一篇见!