命令行访问Redis是一种高效、直接的管理方式,通过终端或命令提示符与Redis服务器交互,适用于开发调试、快速操作及服务器管理场景,Redis作为高性能的内存数据库,其命令行工具(redis-cli)提供了丰富的命令集,支持数据操作、服务器管理、性能监控等功能,以下是关于命令行访问Redis的详细说明。

安装与启动Redis CLI
在使用命令行访问Redis前,需确保已安装Redis服务器及客户端工具,Linux系统可通过包管理器安装,如Ubuntu使用sudo apt-get install redis-server
,CentOS使用sudo yum install redis
,Windows用户可下载Redis官方发布包或使用WSL(Windows Subsystem for Linux)环境,安装完成后,通过redis-cli
命令启动客户端,默认连接本地(127.0.0.1)的6379端口,若需连接远程服务器,可使用redis-cli -h <主机名> -p <端口> -a <密码>
参数,例如redis-cli -h 192.168.1.100 -p 6379 -a yourpassword
。
基本命令操作
Redis CLI支持多种数据类型的操作,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等,以下为常用命令示例:
-
字符串操作
- 设置键值:
SET key value
,例如SET username "Alice"
。 - 获取值:
GET key
,例如GET username
返回"Alice"
。 - 设置过期时间:
EXPIRE key seconds
,例如EXPIRE username 3600
(1小时后过期)。
- 设置键值:
-
哈希操作
(图片来源网络,侵删)- 设置字段值:
HSET hash field value
,例如HSET user:1 name "Bob" age "25"
。 - 获取字段值:
HGET hash field
,例如HGET user:1 name
返回"Bob"
。 - 获取所有字段和值:
HGETALL hash
,例如HGETALL user:1
返回表格式数据。
- 设置字段值:
-
列表操作
- 推入元素:
LPUSH list item
(左侧推入)或RPUSH list item
(右侧推入)。 - 弹出元素:
LPOP list
(左侧弹出)或RPOP list
(右侧弹出)。 - 获取范围:
LRANGE list start stop
,例如LRANGE mylist 0 2
返回前三个元素。
- 推入元素:
-
集合操作
- 添加元素:
SADD set member
,例如SADD colors "red"
。 - 获取所有成员:
SMEMBERS set
,例如SMEMBERS colors
返回["red", "green", "blue"]
。 - 判断成员是否存在:
SISMEMBER set member
,例如SISMEMBER colors "red"
返回1
(存在)或0
(不存在)。
- 添加元素:
-
有序集合操作
- 添加成员及分数:
ZADD sortedset score member
,例如ZADD leaderboard 100 "Player1"
。 - 按分数范围获取成员:
ZRANGE sortedset start stop [WITHSCORES]
,例如ZRANGE leaderboard 0 1 WITHSCORES
返回分数最高的两个成员及其分数。
- 添加成员及分数:
高级功能与技巧
-
批量操作
使用MGET
和MSET
可一次性操作多个键,例如MSET key1 "value1" key2 "value2"
或MGET key1 key2
,减少网络开销。 -
管道(Pipeline)
通过管道技术将多个命令一次性发送至服务器,显著提升性能。(echo -en "SET key1 value1\r\nSET key2 value2\r\nGET key1\r\n"; sleep 1) | nc localhost 6379
或在Redis CLI中使用
--pipe
参数导入数据。 -
事务(Transaction)
使用MULTI
、EXEC
、DISCARD
实现事务操作,确保命令原子性。MULTI SET temp1 "value1" SET temp2 "value2" EXEC
-
服务器管理
- 查看信息:
INFO [section]
,例如INFO memory
返回内存使用情况。 - 慢查询日志:
SLOWLOG GET [num]
,获取执行时间较长的命令。 - 实时监控:
MONITOR
命令实时打印所有服务器接收的命令(生产环境慎用)。
- 查看信息:
-
数据库操作
Redis默认提供16个数据库(编号0-15),可通过SELECT dbindex
切换,例如SELECT 1
切换至第二个数据库。
常见问题与解决方案
-
连接超时或拒绝
检查Redis服务是否运行(redis-server
),确认防火墙设置及端口是否开放(默认6379),若需密码验证确保-a
参数正确。 -
命令执行无响应
可能是服务器负载过高或内存不足,可通过INFO clients
查看连接数,INFO memory
检查内存使用情况,必要时执行FLUSHDB
清空当前数据库或重启服务。
相关问答FAQs
Q1: 如何在Redis CLI中查看所有键?
A1: 使用KEYS pattern
命令可匹配所有符合模式的键,例如KEYS *
返回所有键,但注意,KEYS
命令会阻塞服务器,生产环境建议使用SCAN cursor [MATCH pattern] [COUNT count]
命令,例如SCAN 0 MATCH user:* COUNT 10
,通过游标分批遍历键,避免阻塞。
Q2: Redis CLI如何导出和导入数据?
A2: 导出数据可使用redis-cli --rdb filename.rdb
命令生成RDB快照文件;导入数据则需先停止Redis服务,将RDB文件放入工作目录后重启服务,另一种方式是使用redis-cli --pipe
配合ECHO
或PRINTF
命令生成协议格式数据流,例如cat data.txt | redis-cli --pipe
,其中data.txt
需包含符合Redis协议的命令(如SET key value
)。