当前位置:首页 > 电脑教程 > 正文

Redis命令如何快速使用?

Redis命令通过redis-cli或程序连接使用,支持字符串、哈希等数据类型的操作,常用命令如SET/GET存取值,INCR递增数字,EXPIRE设置过期时间。

Redis 是一个高性能的键值存储数据库,支持多种数据结构(如字符串、哈希、列表等),其命令通过 redis-cli 命令行工具或编程语言客户端执行,以下是核心命令分类及使用详解,所有语法均遵循 Redis 官方规范:


通用命令

  1. KEYS pattern

    查找匹配模式的键(生产环境慎用,阻塞性能)。

    KEYS user:* # 返回所有以"user:"开头的键
  2. DEL key [key ...]

    删除指定键。

    DEL user:1001 profile:1001
  3. EXPIRE key seconds

    设置键的过期时间(秒)。

    EXPIRE session_token 3600 # 1小时后过期
  4. TTL key

    查看键的剩余生存时间(秒)。

    TTL session_token # 返回 -2 表示键不存在,-1 表示永不过期


字符串(Strings)

适用于缓存、计数器等场景。

  1. SET key value [EX seconds]

    设置键值对,支持过期时间。

    SET website:visits 0 EX 60 # 初始化为0,60秒后过期
  2. GET key

    获取键的值。

    GET website:visits # 返回 "0"
  3. INCR key

    将键的值增1(原子操作)。

    INCR website:visits # 值变为1
  4. MSET key value [key value ...]

    批量设置键值。

    MSET name "Alice" age 30 city "Paris"


哈希(Hashes)

存储对象属性,如用户信息。

Redis命令如何快速使用? 第1张

  1. HSET key field value

    设置哈希中的字段值。

    HSET user:1001 name "Bob" email "bob@example.com"

  2. HGET key field

    获取哈希字段的值。

    HGET user:1001 name # 返回 "Bob"
  3. HGETALL key

    获取哈希所有字段和值。

    HGETALL user:1001 # 返回字段列表和值
  4. HINCRBY key field increment

    增加哈希字段的数值。

    HINCRBY user:1001 score 5 # 分数增加5

列表(Lists)

实现队列、消息流等功能。

  1. LPUSH key element [element ...]

    从左侧插入元素(先进后出)。

    Redis命令如何快速使用? 第2张

    LPUSH messages "task1" "task2" # 列表:["task2", "task1"]
  2. RPUSH key element [element ...]

    从右侧插入元素(先进先出)。

    RPUSH queue "job1" "job2" # 列表:["job1", "job2"]
  3. LPOP key

    移除并返回左侧第一个元素。

    LPOP messages # 返回 "task2"
  4. LRANGE key start stop

    获取列表片段(支持负数索引)。

    LRANGE queue 0 -1 # 返回所有元素


集合(Sets)

存储唯一元素,用于去重或标签。

  1. SADD key member [member ...]

    添加元素到集合。

  2. SMEMBERS key

    返回集合所有成员。

    SMEMBERS tags # 返回无序的元素列表

  3. SINTER key [key ...]

    求多个集合的交集。

    Redis命令如何快速使用? 第3张

    SINTER tags1 tags2 # 返回共同拥有的标签
  4. SISMEMBER key member

    检查元素是否存在。

    SISMEMBER tags "redis" # 存在返回1,否则0
  5. 有序集合(Sorted Sets)

    带权重的集合,适用于排行榜。

    1. ZADD key score member

      添加带分数的成员。

      ZADD leaderboard 100 "Alice" 85 "Bob"
    2. ZRANGE key start stop [WITHSCORES]

      按分数升序返回成员(结合 WITHSCORES 显示分数)。

      ZRANGE leaderboard 0 -1 WITHSCORES # 返回 ["Bob","85","Alice","100"]
    3. ZREVRANGE key start stop

      按分数降序返回成员(如排行榜)。

      ZREVRANGE leaderboard 0 0 # 返回第一名:"Alice"
    4. ZINCRBY key increment member

      增加成员的分数。

      ZINCRBY leaderboard 20 "Bob" # Bob分数变为105


    事务与管道

    1. 事务(MULTI/EXEC)

      批量执行命令(非原子性,中间可能失败)。

      MULTI SET balance:1001 500 INCR user:count EXEC
    2. 管道(Pipeline)

      一次性发送多条命令(减少网络延迟)。

      # 在编程客户端中(例如Python): pipeline = redis_client.pipeline() pipeline.set("key1", "value1") pipeline.get("key2") results = pipeline.execute()


    注意事项

    1. *生产环境规避 `KEYS **: 使用SCAN` 命令迭代查询(非阻塞)。
    2. 键命名规范

      建议使用 object_type:id:field 格式(如 user:1001:profile)。

    3. 内存管理

      定期检查内存占用(INFO memory),对大数据集分片存储。

    4. 持久化策略

      根据需求选择 RDB(快照)或 AOF(日志追加)。


    最佳实践

    • 读写分离:读操作指向从节点(Replica),写操作指向主节点(Master)。
    • 连接池:复用客户端连接(如 Java 的 JedisPool)。
    • Lua 脚本:复杂操作使用 EVAL 保证原子性。
    • 监控工具:通过 redis-cli --stat 或 INFO 命令监控状态。

    引用说明: 基于 Redis 官方文档(redis.io/commands)整理,所有命令语法和示例均经过 Redis 7.0 版本验证,建议开发者查阅官方文档获取最新细节,或使用 HELP 命令查看内置帮助(如 HELP SET)。

0