Redis 快速开始
安装Redis后,让我们快速上手,学习Redis的基本操作。
启动Redis服务器
前台启动
最简单的启动方式,Redis会在前台运行,日志直接输出到终端。
BASH
redis-server
输出信息:
_._
_.-``__ ''-._
_.-`` `. `_. ''-._
_.-`` .-`` .-```. ```.-'' ''-._
.-`` .-`` .-`````-..-'''.-'' ''-._
( ' . ''-. ``.
|`. `-. `-. `-. `-. `-.)
| `-. `-. `-. `-. `-. `'
`-. `-. `-. `-. `-. `-. _
`-. `-. `-. `-. `-. .-'
`-. `-. `-. `-. .-'
`-. `-. `-. .-'
`-. `-. .-'
`-. .-'
`-
Redis 7.0.11 (00000000/0) 64 bit
Running in standalone mode
Port: 6379
PID: 12345
Ready to accept connections
💡 提示: 按下
Ctrl+C 可以停止Redis服务器。
后台启动
生产环境推荐后台运行。
BASH
# 方法1:使用daemonize参数
redis-server --daemonize yes
# 方法2:修改配置文件
# 编辑 /etc/redis/redis.conf
daemonize yes
# 然后启动
redis-server /etc/redis/redis.conf
指定端口启动
BASH
# 使用6380端口
redis-server --port 6380
检查Redis是否运行
BASH
# Linux
ps aux | grep redis-server
# 或使用redis-cli
redis-cli ping
# 返回 PONG 表示Redis正在运行
连接Redis
使用redis-cli连接
redis-cli 是Redis自带的命令行客户端工具。
BASH
# 连接本地Redis(默认127.0.0.1:6379)
redis-cli
# 连接后提示符变为:
127.0.0.1:6379>
指定主机和端口
BASH
# 连接指定主机和端口
redis-cli -h 192.168.1.100 -p 6379
# 连接本地其他端口
redis-cli -p 6380
带密码连接
BASH
# 方式1:命令行参数
redis-cli -a yourpassword
# 方式2:连接后认证
redis-cli
127.0.0.1:6379> AUTH yourpassword
OK
⚠️ 安全提示: 命令行使用
-a 参数会在历史记录中暴露密码,生产环境建议使用 AUTH 命令或配置文件。
连接Unix Socket
BASH
redis-cli -s /tmp/redis.sock
退出redis-cli
BASH
# 退出连接
127.0.0.1:6379> exit
# 或
127.0.0.1:6379> quit
# 或按 Ctrl+D
第一个命令:PING
PING命令用于测试连接是否正常,就像网络中的ping命令。
示例:测试连接
REDIS
127.0.0.1:6379> PING
PONG
如果Redis正常工作,会返回 PONG。
带消息的PING
REDIS
127.0.0.1:6379> PING "Hello"
"Hello"
PING可以携带消息,Redis会原样返回。
💡 用途: PING常用于健康检查、连接测试、测量网络延迟。
基本命令:SET和GET
SET和GET是最常用的命令,用于存储和读取字符串数据。
SET:存储数据
SET命令用于设置键值对。
示例:基本SET操作
REDIS
127.0.0.1:6379> SET name "Redis Tutorial"
OK
示例:带过期时间
REDIS
# 设置键值,10秒后过期
127.0.0.1:6379> SET temp "temporary" EX 10
OK
# 或使用PX设置毫秒
127.0.0.1:6379> SET temp2 "temp" PX 5000
OK
示例:仅当键不存在时设置
REDIS
# NX:仅当键不存在时设置
127.0.0.1:6379> SET name "New Name" NX
(nil) # 因为name已存在,设置失败
# XX:仅当键存在时设置
127.0.0.1:6379> SET name "Updated Name" XX
OK
SET命令完整语法
SET key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT timestamp|PXAT timestamp]
| 参数 | 说明 |
|---|---|
| NX | 仅当键不存在时设置 |
| XX | 仅当键存在时设置 |
| GET | 返回旧值(Redis 6.2+) |
| EX seconds | 设置过期时间(秒) |
| PX milliseconds | 设置过期时间(毫秒) |
| EXAT timestamp | 设置过期时间戳(秒) |
| PXAT timestamp | 设置过期时间戳(毫秒) |
GET:读取数据
GET命令用于获取键的值。
示例:基本GET操作
REDIS
127.0.0.1:6379> GET name
"Redis Tutorial"
# 键不存在返回nil
127.0.0.1:6379> GET notexist
(nil)
示例:GETSET(获取旧值并设置新值)
REDIS
127.0.0.1:6379> GETSET name "New Value"
"Redis Tutorial" # 返回旧值
127.0.0.1:6379> GET name
"New Value" # 已更新为新值
其他基本命令
DEL:删除键
REDIS
127.0.0.1:6379> SET temp "delete me"
OK
127.0.0.1:6379> DEL temp
(integer) 1 # 删除成功,返回删除的键数量
127.0.0.1:6379> DEL temp
(integer) 0 # 键不存在,删除0个
EXISTS:检查键是否存在
REDIS
127.0.0.1:6379> SET name "Redis"
OK
127.0.0.1:6379> EXISTS name
(integer) 1 # 存在
127.0.0.1:6379> EXISTS notexist
(integer) 0 # 不存在
KEYS:查找键
REDIS
# 设置一些测试数据
127.0.0.1:6379> SET user:1 "Alice"
127.0.0.1:6379> SET user:2 "Bob"
127.0.0.1:6379> SET product:1 "iPhone"
# 查找所有键(慎用!)
127.0.0.1:6379> KEYS *
1) "user:1"
2) "user:2"
3) "product:1"
4) "name"
# 查找匹配模式的键
127.0.0.1:6379> KEYS user:*
1) "user:1"
2) "user:2"
127.0.0.1:6379> KEYS *:1
1) "user:1"
2) "product:1"
⚠️ 警告: KEYS命令会扫描整个数据库,数据量大时非常慢,生产环境禁用!应使用SCAN命令代替。
FLUSHDB:清空当前数据库
REDIS
# 清空当前数据库所有数据(危险!)
127.0.0.1:6379> FLUSHDB
OK
⚠️ 危险: FLUSHDB会删除所有数据,生产环境慎用!
DBSIZE:查看键的数量
REDIS
127.0.0.1:6379> DBSIZE
(integer) 4 # 当前数据库有4个键
命令返回值类型
Redis命令返回不同类型的结果:
| 返回值示例 | 类型 | 说明 |
|---|---|---|
OK |
简单字符串 | 操作成功 |
"value" |
字符串 | 字符串值 |
(integer) 1 |
整数 | 数值结果 |
1) "a"2) "b" |
数组 | 列表或集合 |
(nil) |
空 | 键不存在或无结果 |
# Error |
错误 | 命令执行失败 |
批量执行命令
交互模式
在redis-cli中逐条输入命令:
REDIS
127.0.0.1:6379> SET a 1
OK
127.0.0.1:6379> SET b 2
OK
127.0.0.1:6379> GET a
"1"
管道模式
从文件批量执行命令:
BASH
# 创建命令文件 commands.txt
echo "SET key1 value1" > commands.txt
echo "SET key2 value2" >> commands.txt
echo "GET key1" >> commands.txt
# 批量执行
cat commands.txt | redis-cli
输出:
OK
OK
"value1"
命令行直接执行
BASH
# 直接执行单个命令
redis-cli SET mykey "myvalue"
# 输出:OK
redis-cli GET mykey
# 输出:"myvalue"
# 执行多个命令
redis-cli << EOF
SET a 1
SET b 2
GET a
GET b
EOF
使用帮助系统
Redis内置了完善的帮助系统。
查看命令帮助
REDIS
127.0.0.1:6379> HELP SET
SET key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]
summary: Set the string value of a key
since: 1.0.0
group: string
查看命令组
REDIS
127.0.0.1:6379> HELP @string
# 列出所有字符串命令
Tab补全
redis-cli支持Tab键补全命令:
REDIS
127.0.0.1:6379> SET<按Tab>
# 自动补全为 SET
实用技巧
1. 查看服务器信息
REDIS
127.0.0.1:6379> INFO
# 返回大量服务器信息
# 查看特定部分
127.0.0.1:6379> INFO server
127.0.0.1:6379> INFO memory
127.0.0.1:6379> INFO stats
2. 查看配置
REDIS
# 查看所有配置
127.0.0.1:6379> CONFIG GET *
# 查看特定配置
127.0.0.1:6379> CONFIG GET maxmemory
1) "maxmemory"
2) "0"
3. 监控命令
REDIS
# 实时监控所有执行的命令
127.0.0.1:6379> MONITOR
OK
# 之后会显示所有客户端执行的命令
💡 用途: MONITOR用于调试,可以看到所有客户端的命令,生产环境慎用(影响性能)。
4. 查看客户端连接
REDIS
127.0.0.1:6379> CLIENT LIST
id=1 addr=127.0.0.1:52345 fd=8 name= age=10 idle=0 ...
❓ 常见问题
Q redis-cli连接不上Redis?
A 检查Redis是否启动(
ps aux | grep redis),检查端口是否正确,检查防火墙设置。Q 为什么返回 (nil)?
A (nil) 表示空值,通常是因为键不存在。使用 EXISTS 命令检查键是否存在。
Q 如何清空测试数据?
A 使用 FLUSHDB 清空当前数据库,或 FLUSHALL 清空所有数据库(危险!)。
Q 如何查看所有键?
A 使用 KEYS * 命令,但数据量大时会很慢,生产环境用 SCAN 代替。
Q 如何退出redis-cli?
A 输入 exit 或 quit,或按 Ctrl+D。
📖 小节
- redis-server 启动Redis服务器,redis-cli 连接Redis
- PING 测试连接,SET/GET 存取字符串
- DEL 删除键,EXISTS 检查键是否存在
- KEYS 查找键(生产环境慎用),DBSIZE 查看键数量
- 使用 HELP 查看命令帮助,Tab键补全命令
- MONITOR 监控命令,INFO 查看服务器信息
📝 作业
- 启动练习: 启动Redis服务器,使用redis-cli连接,执行PING命令
- 基本操作: 使用SET存储你的名字和年龄,使用GET读取出来
- 过期练习: 设置一个带过期时间的键,等待过期后用GET查看结果
- 批量操作: 创建一个文本文件,写入多条Redis命令,用管道模式执行
下一课
下一课我们将学习 Redis 配置,了解Redis配置文件和常用配置项。



