当前位置: 首页
数据库
Redis常用命令总结

Redis常用命令总结

热心网友 时间:2026-04-23
转载

在当今的开发实践中,Redis凭借其卓越的性能,早已成为缓存、消息队列和排行榜等场景下的核心组件。面对如此丰富的命令集,如何快速定位并高效使用,是每个开发者都会遇到的课题。本文将系统梳理那些在日常开发中间出场率最高的Redis命令,旨在为你构建一份清晰、实用的速查手册。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

Redis常用命令总结

一. 基础操作

1.1 连接与通用命令

# 连接 Redis
redis-cli
redis-cli -h 127.0.0.1 -p 6379
redis-cli -a password

# 切换数据库
SELECT 0-15  # Redis 默认有16个数据库

# 清空当前数据库
FLUSHDB
# 清空所有数据库
FLUSHALL

# 查看 key 的数量
DBSIZE
# 查看服务器信息
INFO
# 测试连接
PING

1.2 Key 操作

# 设置键值对(带过期时间)
SET key value
SET key value EX 3600    # 3600秒后过期
SET key value PX 300000  # 300000毫秒后过期

# 获取值
GET key
# 删除 key
DEL key1 key2 key3
# 判断 key 是否存在
EXISTS key

# 设置过期时间
EXPIRE key 3600        # 3600秒后过期
EXPIREAT key 1700000000 # 指定时间戳过期
# 查看剩余过期时间
TTL key          # 返回秒
PTTL key         # 返回毫秒
# 移除过期时间
PERSIST key

# 重命名 key
RENAME oldkey newkey
RENAMENX oldkey newkey  # 仅当 newkey 不存在时重命名

# 查找 key
KEYS pattern      # KEYS user:*  (生产环境慎用)
SCAN cursor MATCH pattern COUNT count  # SCAN 0 MATCH user:* COUNT 10 (推荐)

# 查看 key 类型
TYPE key

二、String(字符串)

# 设置和获取
SET key value
GET key
MGET key1 key2 key3    # 批量获取
MSET key1 val1 key2 val2 # 批量设置

# 数值操作
INCR key          # 自增1
INCRBY key 10     # 自增指定值
DECR key          # 自减1
DECRBY key 10     # 自减指定值

# 字符串追加
APPEND key value  # 返回字符串长度
# 获取长度
STRLEN key
# 截取子串
GETRANGE key 0 -1  # 0到-1表示全部
# 设置指定位置的值
SETRANGE key offset value

三、Hash(哈希)

# 设置字段
HSET key field value
HMSET key field1 value1 field2 value2
# 获取字段
HGET key field
HMGET key field1 field2
# 获取所有字段和值
HGETALL key

# 删除字段
HDEL key field1 field2
# 判断字段是否存在
HEXISTS key field
# 获取所有字段名
HKEYS key
# 获取所有字段值
HVALS key
# 获取字段数量
HLEN key

# 数值操作
HINCRBY key field 10
HINCRBYFLOAT key field 10.5

四、List(列表)

# 添加元素(左侧)
LPUSH key value1 value2
LPUSHX key value  # 仅当列表存在时添加
# 添加元素(右侧)
RPUSH key value1 value2
RPUSHX key value

# 弹出元素
LPOP key  # 左侧弹出
RPOP key  # 右侧弹出

# 获取列表范围内的元素
LRANGE key 0 -1  # 获取全部
LRANGE key 0 10  # 获取前11个
# 获取列表长度
LLEN key
# 删除指定值的元素
LREM key count value  # count>0从头删,count<0从尾删,count=0全删
# 获取指定索引的元素
LINDEX key index
# 设置指定索引的元素
LSET key index value
# 列表修剪
LTRIM key 0 100  # 保留0-100的元素,其他删除

# 阻塞操作(实现消息队列)
BLPOP key1 key2 timeout
BRPOP key1 key2 timeout

五、Set(集合)

# 添加元素
SADD key member1 member2
# 获取所有元素
SMEMBERS key
# 删除元素
SREM key member1 member2
# 判断元素是否存在
SISMEMBER key member
# 获取集合大小
SCARD key

# 随机弹出元素
SPOP key [count]
# 随机获取元素(不删除)
SRANDMEMBER key [count]

# 集合运算
SINTER key1 key2 key3    # 交集
SUNION key1 key2 key3     # 并集
SDIFF key1 key2           # 差集(key1有key2没有)
# 集合运算并存储结果
SINTERSTORE dest key1 key2
SUNIONSTORE dest key1 key2
SDIFFSTORE dest key1 key2

六、ZSet(有序集合)

# 添加元素
ZADD key score1 member1 score2 member2

# 获取分数范围内的元素(升序)
ZRANGE key 0 -1
ZRANGE key 0 -1 WITHSCORES  # 带分数
# 获取分数范围内的元素(降序)
ZREVRANGE key 0 -1
ZREVRANGE key 0 -1 WITHSCORES
# 按分数范围获取
ZRANGEBYSCORE key min max
ZREVRANGEBYSCORE key max min

# 获取元素排名(升序)
ZRANK key member
# 获取元素排名(降序)
ZREVRANK key member
# 获取元素分数
ZSCORE key member

# 获取指定分数范围内的元素数量
ZCOUNT key min max
# 获取集合大小
ZCARD key

# 删除元素
ZREM key member1 member2
# 按排名删除
ZREMRANGEBYRANK key 0 5
# 按分数删除
ZREMRANGEBYSCORE key min max

# 增加分数
ZINCRBY key increment member

七、常用应用场景

7.1 缓存场景

# 设置缓存
SET cache:user:1001 '{"id":1001,"name":"张三"}' EX 3600
# 获取缓存
GET cache:user:1001
# 删除缓存
DEL cache:user:1001

7.2 计数器

# 文章阅读量
INCR article:1001:views
# 点赞数
INCR post:1001:likes
# 批量点赞计数
INCRBY post:1001:likes 10

7.3 分布式锁

# 获取锁
SET lock:resource UNIQUE_VALUE NX PX 30000
# 释放锁(Lua脚本保证原子性)
EVAL "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end" 1 lock:resource UNIQUE_VALUE

7.4 排行榜

# 添加分数
ZADD leaderboard 95 "player1" 87 "player2" 92 "player3"
# 获取前10名
ZREVRANGE leaderboard 0 9 WITHSCORES
# 获取玩家排名
ZREVRANK leaderboard "player1"
# 增加分数
ZINCRBY leaderboard 5 "player1"

7.5 消息队列

# 生产者(左侧入队)
LPUSH queue:task '{"id":1,"type":"email"}'
# 消费者(右侧出队,阻塞5秒)
BRPOP queue:task 5

7.6 用户标签

# 添加标签
SADD user:1001:tags "程序员" "技术控" "音乐迷"
# 获取标签
SMEMBERS user:1001:tags
# 判断标签是否存在
SISMEMBER user:1001:tags "程序员"
# 查找共同标签的用户(交集)
SINTER user:1001:tags user:1002:tags
来源:https://www.jb51.net/database/362569hnq.htm

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Redis 7.0新特性在发布订阅中有何改进_解析Pub/Sub性能优化与系统稳定性

Redis 7.0新特性在发布订阅中有何改进_解析Pub/Sub性能优化与系统稳定性

Redis 7 0 新特性在发布订阅中有何改进:解析 Pub Sub 性能优化与系统稳定性 Sharded Pub Sub 解决了集群模式下 Pub Sub 的路由失效问题 如果你在 Redis 6 或更早版本的集群环境中用过 Pub Sub,可能会遇到一个头疼的情况:PUBSUB 命令返回空结果,

时间:2026-04-23 14:48
mysql如何配置预读策略_mysql innodb_read_ahead_threshold

mysql如何配置预读策略_mysql innodb_read_ahead_threshold

innodb_read_ahead_threshold 为什么调了没效果 很多朋友调整了 innodb_read_ahead_threshold 却发现预读行为纹丝不动,这背后有个关键前提常被忽略:这个参数只在 innodb_random_read_ahead 关闭时才起作用。虽然后者默认就是关闭的

时间:2026-04-23 14:48
如何监控phpMyAdmin的异常登录行为并发送告警_结合日志分析工具与Webhook报警设置

如何监控phpMyAdmin的异常登录行为并发送告警_结合日志分析工具与Webhook报警设置

phpMyAdmin安全监控:从日志定位到告警实战,避开那些“想当然”的坑 聊到phpMyAdmin的安全,很多人的第一反应是去配置文件里找日志开关。但真相可能有点反直觉:这个最常用的MySQL图形化管理工具,默认根本不记录登录行为。你就算把$cfg[ logincookievalidity ](登

时间:2026-04-23 14:48
mysql高并发环境下SQL执行阻塞_如何开启thread_pool插件优化

mysql高并发环境下SQL执行阻塞_如何开启thread_pool插件优化

MySQL高并发环境下SQL执行阻塞:如何开启thread_pool插件优化 先说一个核心判断:MySQL 8 0+ 社区版默认不支持thread_pool插件,需先用SELECT VERSION()和SELECT * FROM information_schema PLUGINS WHERE PL

时间:2026-04-23 14:48
如何在Navicat中执行将备份文件转存云端存储_保障核心数据安全

如何在Navicat中执行将备份文件转存云端存储_保障核心数据安全

Na vicat不支持直接上传备份至云存储,需先本地生成带时间戳的备份文件,再用命令行工具(如aws s3 cp或rclone)配合定时任务上传;禁用Na vicat自带计划任务和FTP导出,避免覆盖、空传或协议不兼容。 说到数据库备份,一个常见的误区是认为Na vicat的“自动备份”功能能一键直

时间:2026-04-23 14:48
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程