菜鸟科技网

Redis控制台命令有哪些常用操作?

Redis控制台命令是管理与操作Redis数据库的核心工具,通过命令行界面(CLI)可以直接与Redis服务器交互,实现数据存取、配置管理、性能监控等功能,Redis命令遵循特定的语法规则,通常以命令名开头,后跟参数,例如SET key value用于设置键值对,以下从基础操作、数据类型操作、高级功能及管理维护四个维度,详细解析常用Redis控制台命令。

Redis控制台命令有哪些常用操作?-图1
(图片来源网络,侵删)

基础操作命令

基础操作是Redis日常使用中最频繁的命令,主要包括键的增删查、服务器信息查询等。

  1. 键操作

    • SET key value [EX seconds] [PX milliseconds] [NX|XX]:设置键值对,支持过期时间(EX秒/PX毫秒)和条件(NX键不存在时设置/XX键存在时设置)。
    • GET key:获取键对应的值,若键不存在返回nil
    • DEL key [key ...]:删除一个或多个键,返回删除的键数量。
    • EXISTS key:检查键是否存在,存在返回1,否则返回0。
    • TTL key:查看键的剩余生存时间(秒),返回-1表示永不过期,-2表示键不存在。
    • EXPIRE key seconds:设置键的过期时间(秒),成功返回1,失败返回0。
  2. 服务器信息

    • INFO [section]:返回服务器信息,section可选如servermemoryclients等,不指定则返回全部信息。
    • PING:测试服务器连接,返回PONG表示正常。
    • ECHO message:返回输入的message,用于测试或调试。

数据类型操作命令

Redis支持5种基本数据类型,每种类型有专属操作命令。

Redis控制台命令有哪些常用操作?-图2
(图片来源网络,侵删)
数据类型 常用命令 功能说明
String APPEND key valueSTRLEN keyINCR keyDECR key 追加值、获取长度、递增/递减(数值类型)
List LPUSH key value [value ...]RPUSH key valueLRANGE key start stop 左侧/右侧推入元素,获取范围内元素(start/stop为负数表示从末尾计数)
Hash HSET key field valueHGET key fieldHGETALL key 设置/获取哈希表字段,获取所有字段和值
Set SADD key member [member ...]SMEMBERS keySINTER key1 key2 添加成员、获取所有成员、求多个集合的交集
ZSet ZADD key score member [score member ...]ZRANGE key start stop [WITHSCORES] 添加有序集合成员(带分数),按分数范围排序成员,WITHSCORES显示分数

示例

  • 操作String:SET name "Alice"设置字符串,GET name获取值,INCR visits将数值加1。
  • 操作List:LPUSH tasks "task1"将任务加入列表左侧,LRANGE tasks 0 -1获取所有任务。
  • 操作Hash:HSET user:1 name "Bob" age 25设置用户信息,HGET user:1 age获取年龄。

高级功能命令

Redis的高级功能包括事务、持久化、发布订阅等,适用于复杂场景。

  1. 事务

    • MULTI:开启事务,后续命令进入队列,不会立即执行。
    • EXEC:执行事务队列中的所有命令,若命令语法错误则全部不执行;若运行时错误,已执行的命令不会回滚。
    • DISCARD:取消事务,清空队列。
  2. 持久化

    Redis控制台命令有哪些常用操作?-图3
    (图片来源网络,侵删)
    • SAVE:同步保存数据到RDB文件,阻塞服务器。
    • BGSAVE:异步保存数据,适合生产环境。
    • LASTSAVE:返回最后一次成功保存的时间戳。
  3. 发布订阅

    • PUBLISH channel message:向指定频道发送消息。
    • SUBSCRIBE channel [channel ...]:订阅一个或多个频道,接收消息后阻塞客户端。

管理维护命令

管理命令用于监控服务器状态、调整配置、清理数据等。

  • CONFIG GET parameter:获取配置参数,如CONFIG GET maxmemory查看最大内存限制。
  • CONFIG SET parameter value:动态修改配置,如CONFIG SET maxmemory-policy allkeys-lru设置内存淘汰策略。
  • FLUSHDB:清空当前数据库,FLUSHALL清空所有数据库。
  • CLIENT LIST:列出所有客户端连接信息,包括IP、端口、命令统计等。
  • SLOWLOG [get/len/reset]:管理慢查询日志,如SLOWLOG get 10获取最近10条慢查询。

相关问答FAQs

Q1: Redis中如何批量删除符合某个模式的键?
A: 使用KEYS命令匹配键模式(如KEYS user:*),但KEYS会阻塞服务器,生产环境建议用SCAN命令分批遍历。

SCAN 0 MATCH user:* COUNT 100  # 从游标0开始,每次返回100个匹配键

结合DEL命令删除:DEL $(redis-cli --scan --pattern "user:*")(Linux环境下)。

Q2: Redis事务能否保证原子性?什么情况下会失败?
A: Redis事务能保证命令的原子性执行,但仅限于语法错误(如命令不存在)时,整个事务会回滚;若命令运行时错误(如对字符串执行INCR),已执行的命令不会回滚,后续命令仍会执行。

MULTI
SET num "10"
INCR num  # 正常执行
INCR name # 运行时错误(name非数值)
EXEC      # 返回结果:[OK, 11, error]  # name的INCR失败,但num已递增

需确保事务中命令的运行时逻辑正确,或通过Lua脚本实现更严格的原子操作。

分享:
扫描分享到社交APP
上一篇
下一篇