Redis常用命令及操作详解
Redis是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合,并提供丰富的命令集进行操作。本文将详细介绍Redis的常用命令及其操作,涵盖数据结构的增删改查、高级特性以及一些实用技巧。
一、 连接与服务器管理
PING
: 测试连接是否存活。返回 PONG 表示连接正常。ECHO <message>
: 打印传入的消息。用于调试和测试。SELECT <db>
: 选择数据库。Redis默认有16个数据库,编号0-15。INFO
: 获取服务器信息,包括内存使用、客户端连接、版本等。CONFIG GET <parameter>
: 获取指定配置参数的值。CONFIG SET <parameter> <value>
: 设置指定配置参数的值。FLUSHALL
: 清空所有数据库中的数据。慎用!FLUSHDB
: 清空当前数据库中的数据。慎用!CLIENT LIST
: 列出所有连接的客户端信息。SHUTDOWN
: 关闭服务器。
二、 字符串(String)
SET <key> <value>
: 设置键值对。GET <key>
: 获取键对应的值。MGET <key1> <key2> ...
: 批量获取多个键的值。SETNX <key> <value>
: 当键不存在时才设置值。SETEX <key> <seconds> <value>
: 设置键值对并设置过期时间(秒)。PSETEX <key> <milliseconds> <value>
: 设置键值对并设置过期时间(毫秒)。APPEND <key> <value>
: 在键值后追加值。STRLEN <key>
: 获取键值的长度。INCR <key>
: 将键值递增1,键值必须是数字。DECR <key>
: 将键值递减1,键值必须是数字。INCRBY <key> <increment>
: 将键值递增指定的增量。DECRBY <key> <decrement>
: 将键值递减指定的减量。GETRANGE <key> <start> <end>
: 获取键值的一部分子字符串。
三、 哈希(Hash)
HSET <key> <field> <value>
: 设置哈希字段的值。HGET <key> <field>
: 获取哈希字段的值。HMGET <key> <field1> <field2> ...
: 批量获取多个哈希字段的值。HSETNX <key> <field> <value>
: 当字段不存在时才设置值。HMSET <key> <field1> <value1> <field2> <value2> ...
: 批量设置多个哈希字段的值。HGETALL <key>
: 获取哈希表中所有的字段和值。HDEL <key> <field1> <field2> ...
: 删除一个或多个哈希字段。HEXISTS <key> <field>
: 检查哈希字段是否存在。HLEN <key>
: 获取哈希表中字段的数量。HINCRBY <key> <field> <increment>
: 将哈希字段值递增指定的增量。
四、 列表(List)
LPUSH <key> <value1> <value2> ...
: 将值插入列表头部。RPUSH <key> <value1> <value2> ...
: 将值插入列表尾部。LRANGE <key> <start> <stop>
: 获取列表指定范围内的元素。LINDEX <key> <index>
: 获取列表指定索引的元素。LLEN <key>
: 获取列表的长度。LPOP <key>
: 移除并返回列表头部元素。RPOP <key>
: 移除并返回列表尾部元素。LSET <key> <index> <value>
: 设置列表指定索引的元素值。LTRIM <key> <start> <stop>
: 保留列表指定范围内的元素,其余元素删除。BLPOP <key1> <key2> ... <timeout>
: 阻塞式弹出列表头部元素。BRPOP <key1> <key2> ... <timeout>
: 阻塞式弹出列表尾部元素。
五、 集合(Set)
SADD <key> <member1> <member2> ...
: 将元素添加到集合中。SMEMBERS <key>
: 获取集合中的所有元素。SISMEMBER <key> <member>
: 检查元素是否在集合中。SCARD <key>
: 获取集合的基数(元素数量)。SREM <key> <member1> <member2> ...
: 从集合中移除元素。SRANDMEMBER <key> <count>
: 随机获取集合中的元素。SPOP <key>
: 随机移除并返回集合中的一个元素。SMOVE <source> <destination> <member>
: 将元素从一个集合移动到另一个集合。SINTER <key1> <key2> ...
: 获取多个集合的交集。SUNION <key1> <key2> ...
: 获取多个集合的并集。SDIFF <key1> <key2> ...
: 获取多个集合的差集。
六、 有序集合(Sorted Set)
ZADD <key> <score1> <member1> <score2> <member2> ...
: 将元素添加到有序集合中,并设置分数。ZRANGE <key> <start> <stop> [WITHSCORES]
: 获取指定范围内的元素,可选 WITHSCORES 获取分数。ZREVRANGE <key> <start> <stop> [WITHSCORES]
: 获取指定范围内的元素(倒序),可选 WITHSCORES 获取分数。ZSCORE <key> <member>
: 获取元素的分数。ZRANK <key> <member>
: 获取元素的排名(升序)。ZREVRANK <key> <member>
: 获取元素的排名(降序)。ZCARD <key>
: 获取有序集合的基数(元素数量)。ZREM <key> <member1> <member2> ...
: 从有序集合中移除元素。ZINCRBY <key> <increment> <member>
: 将元素的分数递增指定的增量。ZRANGEBYSCORE <key> <min> <max> [WITHSCORES] [LIMIT <offset> <count>]
: 获取指定分数范围内的元素。ZREVRANGEBYSCORE <key> <max> <min> [WITHSCORES] [LIMIT <offset> <count>]
: 获取指定分数范围内的元素(倒序)。
七、 事务
MULTI
: 开始一个事务。EXEC
: 执行事务中的所有命令。DISCARD
: 取消事务。WATCH <key1> <key2> ...
: 监视一个或多个键,如果在事务执行前键被修改,则事务会被取消。UNWATCH
: 取消所有键的监视。
八、 键管理
KEYS <pattern>
: 查找所有符合给定模式的键。DEL <key1> <key2> ...
: 删除一个或多个键。EXISTS <key>
: 检查键是否存在.EXPIRE <key> <seconds>
: 设置键的过期时间(秒)。PEXPIRE <key> <milliseconds>
: 设置键的过期时间(毫秒)。TTL <key>
: 获取键的剩余过期时间(秒)。PTTL <key>
: 获取键的剩余过期时间(毫秒)。PERSIST <key>
: 移除键的过期时间。TYPE <key>
: 获取键的数据类型。RENAME <key> <newkey>
: 重命名键。RENAMENX <key> <newkey>
: 当新键不存在时才重命名键。
九、 发布/订阅
PUBLISH <channel> <message>
: 向指定频道发布消息.SUBSCRIBE <channel1> <channel2> ...
: 订阅一个或多个频道.PSUBSCRIBE <pattern1> <pattern2> ...
: 订阅符合给定模式的频道.UNSUBSCRIBE <channel1> <channel2> ...
: 取消订阅一个或多个频道.PUNSUBSCRIBE <pattern1> <pattern2> ...
: 取消订阅符合给定模式的频道.
十、 其他常用命令
SORT <key> [BY <pattern>] [LIMIT <offset> <count>] [GET <pattern> ...] [ASC | DESC] [ALPHA] [STORE <destination>]
: 对列表、集合或有序集合进行排序。SCAN <cursor> [MATCH <pattern>] [COUNT <count>]
: 增量迭代获取键.
本文涵盖了Redis的大部分常用命令,但并非全部。 希望通过本文的介绍,读者能够对Redis的命令集有更深入的理解,并在实际应用中灵活运用。 建议读者查阅官方文档以获取更完整的信息和最新的功能更新. 熟练掌握这些命令将有助于更高效地使用Redis,并构建更强大的应用程序。