导读:本期聚焦于老毕创作的《Redis命令行基本操作怎么用?新手入门常用命令详解》,敬请观看详情。刚接触Redis时,命令行是最直接的学习和调试工具。本文围绕Redis命令行基本操作展开,先介绍如何启动redis-cli并连接本地或远程Redis服务,包括认证与选择数据库的方法,随后详细讲解五大数据类型的常用命令,涵盖字符串的set与get、哈希的hset与hgetall、列表的lpush与lrange、集合的sadd与smembers以及有序集合的zadd与zrange。文章还整理了键管理的通用命令,比如keys、expire、ttl、type和del,并给出设置过期时间的实例演示。最后补充事务、发布订阅以及日常运维中常用的info与dbsize查看命令,帮助你快速上手Redis命令行操作,为后续深入学习缓存与消息队列打下基础。

Redis作为当下最流行的内存数据库之一,被广泛用于缓存、计数器、排行榜和消息队列等场景。虽然市面上有很多图形化管理工具,但命令行始终是学习和调试Redis最直接、最可靠的方式。掌握redis-cli的基本操作,不仅能帮助理解Redis的数据模型,也是在服务器排查问题时必备的技能。本文将从连接服务、数据类型操作、键管理和常用运维命令几个方面,系统介绍Redis命令行的入门知识。

Redis命令行基本操作怎么用?新手入门常用命令详解

一、连接Redis服务器与基础准备

安装Redis后,通常会自带一个命令行客户端redis-cli。最简单的用法是直接在终端输入redis-cli,默认连接本机127.0.0.1的6379端口。连接成功后输入ping,如果服务器返回PONG,说明连接正常。

如果Redis设置了密码或者监听了其他端口,需要在连接时指定参数。常用参数包括-h指定主机、-p指定端口、-a指定密码。需要注意密码也可以在连接后通过auth命令输入,这样更安全,避免密码出现在shell的历史记录里。

# 连接本地默认端口
redis-cli

# 连接远程主机并指定端口和密码
redis-cli -h 192.168.1.100 -p 6379 -a yourpassword

# 连接后手动认证
redis-cli -h 192.168.1.100
auth yourpassword

# 测试连通性
ping

# 查看当前数据库(默认有16个库,编号0到15)
select 0

Redis默认提供16个逻辑数据库,通过select命令切换,不同库之间的数据相互隔离。此外,输入info可以查看服务器的运行状态,dbsize可以查看当前库的键总数,这两个命令在日常运维中使用频率很高。

二、五大数据类型的常用命令详解

Redis并不是简单的key-value存储,它支持字符串、哈希、列表、集合和有序集合五种核心数据类型,每种类型都有对应的操作命令。理解这些类型的适用场景,是用好Redis的关键。

1. 字符串String

字符串是最基础的类型,一个key对应一个字符串值,常用于缓存对象序列化后的内容、计数器等场景。set用于写入,get用于读取,incr可以对数字类型的值做原子自增,这在实现点赞数、访问量统计时非常高效。

# 设置键值
set name "redis"

# 读取键值
get name

# 一次性设置多个键
mset city "beijing" lang "java"

# 一次性读取多个键
mget city lang

# 数值自增与自减
set counter 100
incr counter
incrby counter 10
decr counter

2. 哈希Hash

哈希类型适合存储对象的多个字段,比如用户信息。相比把整个对象序列化成字符串,哈希可以单独读写某个字段,避免频繁反序列化整个对象,节省网络开销。

# 设置哈希字段
hset user:1 name "tom" age 25

# 获取单个字段
hget user:1 name

# 获取全部字段和值
hgetall user:1

# 只获取所有字段名或字段值
hkeys user:1
hvals user:1

# 删除某个字段
hdel user:1 age

3. 列表List

列表是一个双向链表结构,支持从两端插入和弹出元素,常用于消息队列、最新动态列表等场景。lpush从左侧插入,rpush从右侧插入,lrange按范围查看元素。

# 从左侧依次插入元素
lpush tasks "task1" "task2" "task3"

# 从右侧插入元素
rpush tasks "task4"

# 查看指定范围的元素,0到-1表示全部
lrange tasks 0 -1

# 弹出元素
lpop tasks
rpop tasks

# 获取列表长度
llen tasks

4. 集合Set与有序集合ZSet

集合用来存放不重复的元素,适合标签、去重、共同好友等场景;有序集合在集合基础上为每个元素增加一个分数,天然适合实现排行榜。zrange配合withscores参数可以同时返回分数。

# 集合操作
sadd tags "java" "redis" "mysql"
smembers tags
sismember tags "java"
scard tags
srem tags "mysql"

# 有序集合实现排行榜
zadd rank 90 "tom" 85 "jack" 95 "lucy"

# 按分数从低到高查看
zrange rank 0 -1 withscores

# 按分数从高到低查看
zrevrange rank 0 -1 withscores

# 获取某个成员的排名,从0开始
zrank rank tom
zrevrank rank tom

三、键管理与过期时间操作

无论哪种数据类型,键的管理命令都是通用的。keys可以按模式匹配查找键,但在生产环境中要谨慎使用,因为数据量大时会阻塞服务器,推荐用scan渐进式遍历代替。删除键使用del,判断键是否存在使用exists

过期时间是Redis作为缓存的核心能力之一。通过expire可以为键设置秒级过期时间,ttl查看剩余生存时间,返回-2表示键不存在,返回-1表示永不过期。persist可以移除过期时间,让键变成永久有效。

# 查看所有键(生产环境慎用)
keys *

# 按模式匹配
keys user:*

# 渐进式遍历,更安全
scan 0 match user:* count 100

# 判断键是否存在
exists name

# 查看键的数据类型
type user:1

# 删除键
del name

# 设置60秒过期
expire name 60

# 查看剩余时间
ttl name

# 移除过期时间
persist name

# 设置键的同时指定过期时间
set session "abc" ex 3600

四、事务与发布订阅入门

Redis支持简单的事务,通过multi开启事务,之后的命令会进入队列,执行exec时一次性按顺序执行,discard可以取消事务。需要注意Redis的事务不支持回滚,如果队列中某条命令执行出错,其他命令仍会执行。

# 开启事务
multi
set k1 "v1"
set k2 "v2"
incr counter
# 执行事务
exec

# 取消事务示例
multi
set k3 "v3"
discard

发布订阅是Redis的消息通信模型,订阅方通过subscribe监听频道,发布方通过publish发送消息,所有在线的订阅者都能立即收到。这个模式常用于实时通知、聊天室等轻量级场景,但消息不持久化,订阅者离线期间的消息会丢失。

# 终端一:订阅频道
subscribe news

# 终端二:向频道发布消息
publish news "hello redis"

五、日常运维常用命令总结

除了数据操作,还有一些命令在排查问题和管理数据时经常用到。info查看服务器整体状态,包括内存使用、连接数、持久化信息等;flushdb清空当前库,flushall清空所有库,这两个命令破坏性极大,执行前务必确认环境;slowlog可以查看慢查询日志,帮助定位性能瓶颈。

# 查看服务器信息
info
info memory

# 当前库键数量
dbsize

# 查看慢查询
slowlog get 10

# 清空当前数据库(危险操作)
flushdb

# 修改键名
rename oldkey newkey

# 随机返回一个键
randomkey

总的来说,Redis命令行的学习曲线并不陡峭,核心在于理解五种数据类型的特点和各自的适用场景,再配合键管理与过期时间的通用命令,就能应对绝大多数日常需求。建议在自己的机器上装一个Redis实例,把本文的命令逐一敲一遍,动手实践是掌握Redis最有效的途径。熟练之后再逐步深入持久化机制、主从复制和集群部署,就能构建起完整的Redis知识体系。

Redis命令行Redis常用命令Redis入门教程修改时间:2026-09-01 04:16:52

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。