Redis常用的命令

一、键(Key)操作命令

功能:管理 Redis 中的键(key),不涉及具体值类型。

  1. 查看所有键

    bash

    KEYS *  # 查看所有键(生产环境慎用,可能阻塞服务)
    KEYS pattern  # 按模式匹配键,如KEYS user:*
    

  2. 检查键是否存在

    bash

    EXISTS key  # 存在返回1,否则返回0
    
  3. 删除键

    bash

    DEL key1 key2  # 删除一个或多个键,返回删除成功的数量
    
  4. 设置过期时间

    bash

    EXPIRE key seconds  # 设置键的过期时间(秒)
    PEXPIRE key milliseconds  # 设置键的过期时间(毫秒)
    TTL key  # 查看剩余过期时间(秒),-1表示永不过期,-2表示已过期
    PERSIST key  # 移除过期时间,使键永久有效
    
  5. 键重命名

    bash

    RENAME key newkey  # 重命名键(如果newkey已存在,会覆盖)
    RENAMENX key newkey  # 仅当newkey不存在时重命名
    

二、字符串(String)操作命令

功能:操作 Redis 中的字符串值,是最基本的数据类型。

  1. 设置值

    bash

    SET key value  # 设置键值对
    SET key value EX seconds  # 设置值并指定过期时间(秒)
    SET key value NX  # 仅当键不存在时设置(用于分布式锁)
    SETNX key value  # 等价于SET key value NX
    
  2. 获取值

    bash

    GET key  # 获取键对应的值
    MGET key1 key2  # 批量获取多个键的值
    
  3. 数值操作

    bash

    INCR key  # 对数值类型的值加1(原子操作)
    DECR key  # 对数值类型的值减1
    INCRBY key increment  # 增加指定数值
    DECRBY key decrement  # 减少指定数值
    
  4. 字符串拼接

    bash

    APPEND key value  # 在原字符串末尾追加内容
    STRLEN key  # 获取字符串长度
    

三、哈希(Hash)操作命令

功能:操作键值对集合(field-value),适合存储对象。

  1. 设置哈希值

    bash

    HSET key field value  # 设置哈希表中的字段值
    HSETNX key field value  # 仅当字段不存在时设置
    HMSET key field1 value1 field2 value2  # 批量设置多个字段
    
  2. 获取哈希值

    bash

    HGET key field  # 获取哈希表中指定字段的值
    HMGET key field1 field2  # 批量获取多个字段的值
    HGETALL key  # 获取哈希表中所有字段和值
    HKEYS key  # 获取哈希表中所有字段名
    HVALS key  # 获取哈希表中所有值
    HLEN key  # 获取哈希表中字段的数量
    
  3. 判断字段是否存在

    bash

    HEXISTS key field  # 存在返回1,否则返回0
    

四、列表(List)操作命令

功能:操作有序可重复的列表,支持双向插入和弹出。

  1. 插入元素

    bash

    LPUSH key value1 value2  # 从左侧(头部)插入一个或多个值
    RPUSH key value1 value2  # 从右侧(尾部)插入一个或多个值
    
  2. 获取元素

    bash

    LRANGE key start stop  # 获取列表指定范围内的元素(0表示第一个,-1表示最后一个)
    LINDEX key index  # 获取列表中指定索引的元素
    LLEN key  # 获取列表长度
    
  3. 弹出元素

    bash

    LPOP key  # 从左侧弹出一个元素
    RPOP key  # 从右侧弹出一个元素
    

五、集合(Set)操作命令

功能:操作无序且唯一的元素集合,支持交集、并集等操作。

  1. 添加元素

    bash

    SADD key member1 member2  # 向集合中添加一个或多个元素
    
  2. 获取元素

    bash

    SMEMBERS key  # 获取集合中所有元素
    SISMEMBER key member  # 判断元素是否存在于集合中
    SCARD key  # 获取集合中元素的数量
    
  3. 集合运算

    bash

    SINTER key1 key2  # 获取多个集合的交集
    SUNION key1 key2  # 获取多个集合的并集
    SDIFF key1 key2  # 获取多个集合的差集(key1有但key2没有的元素)
    

六、有序集合(Sorted Set)操作命令

功能:操作有序且唯一的元素集合,每个元素关联一个分数(score)。

  1. 添加元素

    bash

    ZADD key score1 member1 score2 member2  # 向有序集合中添加元素和分数
    
  2. 获取元素

    bash

    ZRANGE key start stop [WITHSCORES]  # 按分数从小到大获取指定范围的元素
    ZREVRANGE key start stop [WITHSCORES]  # 按分数从大到小获取指定范围的元素
    ZSCORE key member  # 获取元素的分数
    ZCARD key  # 获取有序集合的元素数量
    
  3. 范围操作

    bash

    ZRANGEBYSCORE key min max [WITHSCORES]  # 获取分数在指定范围内的元素
    ZCOUNT key min max  # 统计分数在指定范围内的元素数量
    

七、发布订阅(Pub/Sub)命令

功能:实现消息的发布与订阅模式。

  1. 发布消息

    bash

    PUBLISH channel message  # 向指定频道发布消息
    
  2. 订阅频道

    bash

    SUBSCRIBE channel1 channel2  # 订阅一个或多个频道
    PSUBSCRIBE pattern1 pattern2  # 按模式订阅频道(如news.*)
    

八、事务命令

功能:将多个命令打包,按顺序、原子性执行。

  1. 开启事务

    bash

    MULTI  # 开启事务
    
  2. 执行命令

    bash

    # 在MULTI后依次执行多个命令
    SET key1 value1
    GET key1
    
  3. 提交或取消事务

    bash

    EXEC  # 提交事务
    DISCARD  # 取消事务
    

九、持久化命令

功能:管理 Redis 数据的持久化存储。

  1. RDB 持久化

    bash

    SAVE  # 同步执行RDB快照(会阻塞服务)
    BGSAVE  # 异步执行RDB快照(后台生成)
    LASTSAVE  # 获取最后一次成功执行快照的时间
    
  2. AOF 持久化

    bash

    BGREWRITEAOF  # 异步重写AOF文件(压缩命令日志)
    

十、服务器管理命令

功能:管理 Redis 服务器状态、配置和性能监控。

  1. 服务器信息

    bash

    INFO [section]  # 获取服务器信息(如memory、clients等)
    CONFIG GET parameter  # 获取服务器配置参数
    CONFIG SET parameter value  # 设置服务器配置参数
    
  2. 客户端连接

    bash

    CLIENT LIST  # 查看所有连接的客户端
    CLIENT KILL ip:port  # 关闭指定客户端连接
    
  3. 内存管理

    bash

    MEMORY USAGE key  # 获取键占用的内存字节数
    INFO memory  # 查看内存使用统计信息
    
  4. 关闭服务器

    bash

    SHUTDOWN [NOSAVE|SAVE]  # 关闭服务器(可选是否保存数据)
    

十一、高级应用命令

  1. 分布式锁

    bash

    SET lock_key unique_value NX PX expire_time  # 获取锁
    DEL lock_key  # 释放锁(需保证原子性,建议用Lua脚本)
    
  2. Lua 脚本

    bash

    EVAL script numkeys key1 key2 arg1 arg2  # 执行Lua脚本
    
  3. 慢查询日志

    bash

    SLOWLOG GET [count]  # 获取慢查询日志
    SLOWLOG RESET  # 清空慢查询日志
    

十二、常见应用场景

  1. 缓存

    • 使用 SET/GET 存储热点数据,设置合理过期时间。
  2. 计数器

    • 使用 INCR/DECR 实现访问量、点赞数等计数功能。
  3. 分布式锁

    • 使用 SET key value NX PX 实现原子性锁操作。
  4. 消息队列

    • 使用 LPUSH/RPOP 或 RPUSH/LPOP 实现简单队列。
  5. 排行榜

    • 使用有序集合 ZADD/ZRANGE 实现分数排名。
  6. 会话存储

    • 使用 HASH 存储用户会话信息。

十三、命令执行示例

以下是一个完整的执行示例,展示如何使用 Redis 命令:

bash

# 启动Redis客户端
redis-cli

# 字符串操作
SET name "John"
GET name  # 输出: "John"
INCR counter  # 初始值为0,自增后为1

# 哈希操作
HSET user:1 name "Alice"
HSET user:1 age 30
HGETALL user:1  # 输出: name Alice, age 30

# 列表操作
LPUSH tasks "task1"
LPUSH tasks "task2"
LRANGE tasks 0 -1  # 输出: task2, task1

# 集合操作
SADD fruits "apple"
SADD fruits "banana"
SMEMBERS fruits  # 输出: apple, banana

# 有序集合操作
ZADD scores 90 "Alice"
ZADD scores 85 "Bob"
ZRANGE scores 0 -1 WITHSCORES  # 输出: Bob 85, Alice 90

# 事务示例
MULTI
SET key1 "value1"
GET key1
EXEC  # 按顺序执行两个命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值