Redis作为高性能的键值存储系统,其丰富多样的数据结构与简洁高效的命令集,为开发者提供了强大的数据处理能力。本文将系统梳理Redis的主要数据结构,详细介绍其特性和常用命令,助您快速掌握Redis操作精髓,提升开发效率。
一、字符串(String)
-
定义:字符串是最基础的数据结构,用于存储单个键值对,值可以是字符串、数字、二进制数据等。
-
常用命令:
- SET key value:设置键值对。
- GET key:获取键对应的值。
- INCR key:原子递增整数值。
- MSET key value [key value ...]:批量设置多个键值对。
- MGET key [key ...]:批量获取多个键的值。
- STRLEN key:返回键值的长度。
二、哈希(Hash)
-
定义:哈希用于存储键值对集合,每个键值对由field和value组成,一个键对应一个哈希表。
-
常用命令:
- HSET key field value:设置哈希表中的field-value对。
- HGET key field:获取哈希表中field对应的value。
- HGETALL key:获取哈希表中所有field-value对。
- HEXISTS key field:检查哈希表中是否存在指定field。
- HDEL key field [field ...]:删除哈希表中指定的field-value对。
- HINCRBY key field increment:原子递增哈希表中field对应的整数值。
三、列表(List)
-
定义:列表是有序的字符串集合,支持两端插入与弹出元素。
-
常用命令:
- LPUSH key value [value ...]:在列表左侧插入一个或多个值。
- RPUSH key value [value ...]:在列表右侧插入一个或多个值。
- LPOP key:从列表左侧弹出一个值。
- RPOP key:从列表右侧弹出一个值。
- LRANGE key start stop:获取列表指定范围内的元素(左闭右开区间)。
- LINDEX key index:获取列表中指定索引的元素。
- LREM key count value:删除列表中等于value的元素,count指定删除数量。
四、集合(Set)
-
定义:集合是无序的、不允许重复的字符串集合。
-
常用命令:
- SADD key member [member ...]:向集合添加一个或多个成员。
- SISMEMBER key member:检查成员是否存在于集合中。
- SMEMBERS key:获取集合中所有成员。
- SCARD key:获取集合中成员数量。
- SREM key member [member ...]:从集合中移除一个或多个成员。
- SDIFF key [key ...]:返回第一个集合与其他集合之间的差集。
- SINTER key [key ...]:返回所有给定集合的交集。
- SUNION key [key ...]:返回所有给定集合的并集。
五、有序集合(Sorted Set)
-
定义:有序集合是集合与哈希的混合体,每个成员关联一个分数,成员按分数排序。
-
常用命令:
- ZADD key score member [score member ...]:向有序集合添加一个或多个成员,成员按分数排序。
- ZRANGE key start stop [WITHSCORES]:获取有序集合指定范围内的成员(按分数从小到大排序),可选返回成员分数。
- ZREVRANGE key start stop [WITHSCORES]:同ZRANGE,按分数从大到小排序。
- ZSCORE key member:获取成员的分数。
- ZREM key member [member ...]:从有序集合中移除一个或多个成员。
- ZCARD key:获取有序集合中成员数量。
- ZCOUNT key min max:计算有序集合中分数在[min, max]范围内的成员数量。
六、过期时间与键管理
- 常用命令:
- EXPIRE key seconds:为键设置过期时间(秒)。
- PEXPIRE key milliseconds:为键设置过期时间(毫秒)。
- TTL key:获取键剩余生存时间(秒)。
- PTTL key:同TTL,返回毫秒级剩余生存时间。
- KEYS pattern:查找符合给定模式的键。
- DEL key [key ...]:删除一个或多个键。
七、事务
- 常用命令:
- MULTI:开始一个事务。
- EXEC:执行事务中的所有命令。
- DISCARD:取消事务,放弃执行。
- WATCH key [key ...]:监视一个或多个键,当事务执行前键被修改,事务将被打断。
八、发布与订阅
- 常用命令:
- PUBLISH channel message:向指定频道发布消息。
- SUBSCRIBE channel [channel ...]:客户端订阅一个或多个频道,接收发布的消息。
- PSUBSCRIBE pattern [pattern ...]:客户端订阅一个或多个模式,接收匹配模式的频道发布的消息。
- UNSUBSCRIBE [channel [channel ...]]:客户端退订指定频道或全部频道。
- PUNSUBSCRIBE [pattern [pattern ...]]:同UNSUBSCRIBE,退订指定模式或全部模式。
九、Lua脚本
- 常用命令:
- EVAL script numkeys key [key ...] arg [arg ...]:执行Lua脚本,numkeys指定键参数数量。
- EVALSHA sha1 numkeys key [key ...] arg [arg ...]:执行已知SHA1散列的Lua脚本。
总结,熟练掌握Redis的数据结构与常用命令,是高效利用Redis的基础。本文简明扼要地介绍了字符串、哈希、列表、集合、有序集合等数据结构的特点及常用操作,以及过期时间设置、键管理、事务、发布订阅、Lua脚本等重要功能的使用。通过学习与实践,您可以快速提升对Redis的操作熟练度,为构建高性能、高可用的应用提供有力支撑。希望本文能成为您日常开发中的Redis速查手册,助您在项目中更加得心应手地运用Redis。