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
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Redis 7.0新特性在发布订阅中有何改进_解析Pub/Sub性能优化与系统稳定性
Redis 7 0 新特性在发布订阅中有何改进:解析 Pub Sub 性能优化与系统稳定性 Sharded Pub Sub 解决了集群模式下 Pub Sub 的路由失效问题 如果你在 Redis 6 或更早版本的集群环境中用过 Pub Sub,可能会遇到一个头疼的情况:PUBSUB 命令返回空结果,
mysql如何配置预读策略_mysql innodb_read_ahead_threshold
innodb_read_ahead_threshold 为什么调了没效果 很多朋友调整了 innodb_read_ahead_threshold 却发现预读行为纹丝不动,这背后有个关键前提常被忽略:这个参数只在 innodb_random_read_ahead 关闭时才起作用。虽然后者默认就是关闭的
如何监控phpMyAdmin的异常登录行为并发送告警_结合日志分析工具与Webhook报警设置
phpMyAdmin安全监控:从日志定位到告警实战,避开那些“想当然”的坑 聊到phpMyAdmin的安全,很多人的第一反应是去配置文件里找日志开关。但真相可能有点反直觉:这个最常用的MySQL图形化管理工具,默认根本不记录登录行为。你就算把$cfg[ logincookievalidity ](登
mysql高并发环境下SQL执行阻塞_如何开启thread_pool插件优化
MySQL高并发环境下SQL执行阻塞:如何开启thread_pool插件优化 先说一个核心判断:MySQL 8 0+ 社区版默认不支持thread_pool插件,需先用SELECT VERSION()和SELECT * FROM information_schema PLUGINS WHERE PL
如何在Navicat中执行将备份文件转存云端存储_保障核心数据安全
Na vicat不支持直接上传备份至云存储,需先本地生成带时间戳的备份文件,再用命令行工具(如aws s3 cp或rclone)配合定时任务上传;禁用Na vicat自带计划任务和FTP导出,避免覆盖、空传或协议不兼容。 说到数据库备份,一个常见的误区是认为Na vicat的“自动备份”功能能一键直
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

