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

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 ...]
    从左侧插入元素(先进后出)。

    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 ...]
    添加元素到集合。

    SADD tags "redis" "database" "cache"
  2. SMEMBERS key
    返回集合所有成员。

    SMEMBERS tags  # 返回无序的元素列表
  3. SINTER key [key ...]
    求多个集合的交集。

    SINTER tags1 tags2  # 返回共同拥有的标签
  4. SISMEMBER key member
    检查元素是否存在。

    SISMEMBER tags "redis"  # 存在返回1,否则0

有序集合(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 --statINFO 命令监控状态。

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

0