Redis常用命令大全:从入门到精通
Redis的命令按功能可以分为几个大类下面整理了最常用的一些命令。 通用命令这些命令不针对特定数据类型用于日常管理和操作。命令作用示例PING测试与服务器的连接是否正常正常会返回PONG。PINGSELECT index切换到指定的数据库默认有16个索引从0开始。SELECT 1KEYS pattern查找所有符合给定模式(pattern)的key。生产环境慎用可能阻塞服务。KEYS user:*SCAN cursor迭代当前数据库中的key是KEYS命令的安全替代方案。SCAN 0 MATCH user:* COUNT 10EXISTS key检查一个或多个key是否存在。EXISTS myKeyDEL key删除指定的一个或多个key。DEL myKey yourKeyTYPE key返回key所存储的值的数据类型。TYPE myKeyEXPIRE key seconds为给定的key设置过期时间单位是秒。EXPIRE session:123 1800TTL key以秒为单位返回给定key的剩余生存时间。TTL session:123PERSIST key移除给定key的过期时间使其永不过期。PERSIST session:123 各数据类型专属命令Redis支持多种数据结构每种都有其专用的命令。1. 字符串 (String)最基础的类型适合缓存、计数器等。命令作用示例SET key value设置指定key的值。SET user:1 AliceGET key获取指定key的值。GET user:1MSET key value [key value ...]批量设置多个key的值。MSET name Bob age 30MGET key [key ...]批量获取多个key的值。MGET name ageINCR key将key中存储的数字值加1。INCR page_viewsDECR key将key中存储的数字值减1。DECR stockINCRBY key increment将key中存储的数字值增加指定的步长。INCRBY counter 10APPEND key value如果key已经存在将value追加到原值的末尾。APPEND msg worldSTRLEN key返回key所存储的字符串值的长度。STRLEN msg2. 哈希 (Hash)适合存储对象如用户信息、商品详情等。命令作用示例HSET key field value为哈希表中的字段赋值。HSET user:1000 name AliceHGET key field获取哈希表中指定字段的值。HGET user:1000 nameHMSET key field value [field value ...]批量设置哈希表中的多个字段。HMSET user:1000 name Alice age 25HMGET key field [field ...]批量获取哈希表中多个字段的值。HMGET user:1000 name ageHGETALL key获取哈希表中所有的字段和值。HGETALL user:1000HDEL key field删除哈希表中的一个或多个字段。HDEL user:1000 ageHINCRBY key field increment为哈希表中指定字段的整数值加上增量。HINCRBY user:1000 score 5HEXISTS key field判断哈希表中是否存在某个字段。HEXISTS user:1000 nameHLEN key获取哈希表中字段的数量。HLEN user:10003. 列表 (List)双向链表结构适合消息队列、最新消息列表等场景。命令作用示例LPUSH key value [value ...]将一个或多个值插入到列表的头部左侧。LPUSH tasks task1RPUSH key value [value ...]将一个或多个值插入到列表的尾部右侧。RPUSH tasks task3LPOP key移除并返回列表头部的元素。LPOP tasksRPOP key移除并返回列表尾部的元素。RPOP tasksLRANGE key start stop返回列表指定区间内的元素0表示第一个-1表示最后一个。LRANGE messages 0 -1BLPOP key [key ...] timeout阻塞式地从列表头部弹出元素若列表为空则等待超时。BLPOP alerts 304. 集合 (Set)无序且唯一的集合适合去重、共同好友等场景。命令作用示例SADD key member [member ...]向集合中添加一个或多个成员。SADD tags redis dbSMEMBERS key返回集合中的所有成员。SMEMBERS tagsSISMEMBER key member判断成员是否存在于集合中。SISMEMBER tags redisSREM key member [member ...]移除集合中的一个或多个成员。SREM tags dbSINTER key [key ...]返回多个集合的交集。SINTER group1 group2SUNION key [key ...]返回多个集合的并集。SUNION all_usersSDIFF key [key ...]返回第一个集合与其他集合的差集。SDIFF group1 group2SCARD key获取集合中成员的数量。SCARD tagsSPOP key [count]随机移除并返回集合中的一个或多个成员。SPOP lottery 35. 有序集合 (Sorted Set)每个元素关联一个分数按分数排序适合排行榜等场景。命令作用示例ZADD key score member [score member ...]向有序集合中添加一个或多个成员或更新其分数。ZADD leaderboard 100 PlayerAZRANGE key start stop [WITHSCORES]按分数从小到大返回指定索引范围内的成员。ZRANGE leaderboard 0 2 WITHSCORESZREVRANGE key start stop [WITHSCORES]按分数从大到小返回指定索引范围内的成员。ZREVRANGE leaderboard 0 2ZREM key member [member ...]移除有序集合中的一个或多个成员。ZREM leaderboard PlayerBZINCRBY key increment member为有序集合中指定成员的分数增加增量。ZINCRBY leaderboard 10 PlayerAZRANK key member返回成员按分数从小到大排序的排名从0开始。ZRANK leaderboard PlayerAZCARD key获取有序集合中成员的数量。ZCARD leaderboardZCOUNT key min max计算分数在指定区间内的成员数量。ZCOUNT leaderboard 50 100️ 服务器与高级功能除了数据操作Redis还提供了丰富的管理和高级功能命令。命令作用示例服务器管理DBSIZE返回当前数据库中key的数量。DBSIZEFLUSHDB清空当前数据库中的所有key谨慎操作。FLUSHDBFLUSHALL清空所有数据库中的所有key非常谨慎操作。FLUSHALLINFO [section]返回关于Redis服务器的各种信息和统计。INFO memoryCONFIG GET parameter获取Redis服务器的配置参数。CONFIG GET maxmemory持久化SAVE同步执行将数据保存到磁盘会阻塞主线程。SAVEBGSAVE异步执行在后台将数据保存到磁盘不阻塞主线程。BGSAVE事务MULTI标记一个事务块的开始。MULTIEXEC执行所有在MULTI之后入队的命令。EXECDISCARD取消事务放弃执行事务块内的所有命令。DISCARD发布订阅SUBSCRIBE channel订阅给定的一个或多个频道。SUBSCRIBE newsPUBLISH channel message向指定频道发送消息。PUBLISH news Hello 使用建议生产环境慎用KEYS它可能会阻塞Redis服务线上环境建议使用SCAN命令进行迭代。清空操作极其危险FLUSHDB和FLUSHALL命令会永久删除数据在执行前请务必确认。性能与安全MONITOR等调试命令会影响性能建议仅在必要时使用。