以下是Redis常用数据类型、对应的命令以及典型应用场景的梳理,帮助你快速掌握其核心功能:
1. 字符串(String)
特点:安全存储文本、数字或二进制数据。
常用命令:
SET key value:设置键值对(支持过期时间等参数)。
GET key:获取值。
INCR key / DECR key:原子递增/递减数值。
APPEND key value:追加字符串。
GETSET key value:设置新值并返回旧值。
STRLEN key:获取字符串长度。
应用场景:
缓存热点数据,如用户会话、页面缓存;
作为计数器,如文章阅读量、点赞数;
实现简单的限流;
分布式锁结合SET的NX参数和过期时间。
2. 哈希(Hash)
特点:存储键值对的集合,适合存储对象属性。
常用命令:
HSET key field value:设置字段值。
HGET key field:获取字段值。
HMSET key field1 value1 field2 value2…:批量设置字段(逐渐被HSET替代)。
HMGET key field1 field2…:批量获取字段值。
HGETALL key:获取所有字段和值。
HINCRBY key field increment:递增字段数值。
应用场景:
存储对象信息,如用户信息中的name、age等字段;
商品ID对应的价格、库存等动态数据;
多字段的系统配置存储。
3. 列表(List)
特点:有序元素集合,支持双向操作(栈/队列)。
常用命令:
LPUSH key value / RPUSH key value:在列表左侧/右侧插入元素。
LPOP key / RPOP key:从列表左侧/右侧移除元素。
LRANGE key start end:获取指定范围的元素。
LLEN key:获取列表长度。
POP key timeout:阻塞式地从左侧弹出元素(用于消息队列)。
应用场景:
作为消息队列,使用LPUSH和BRPOP实现生产者-消费者模型;
存储最新消息,如动态或新闻列表;
记录用户浏览历史。
4. 集合(Set)
特点:无序、元素唯一的集合,支持交集、并集和差集运算。
常用命令:SADD key member:添加元素。SREM key member:删除元素。EMBERS key:获取所有元素。SIEMBER key member:判断元素是否存在等。
应用场景:标签系统,如用户的兴趣标签;计算交集找共同好友;独立IP访问记录、参与者去重统计等。
5. 有序集合(Sorted Set / ZSet)
特点:元素按分数排序,支持范围查询。 常用命令包括ZADD, ZRANGE, ZREVRANGE等。 应用场景包括排行榜、游戏积分榜、热搜榜以及延时队列和优先级系统等。 6. 其他高级类型 包括位图(Bitmap)、HyperLogLog、地理空间(GEO)以及流(Stream)。这些类型适用于特定的场景,如用户签到统计、独立IP统计、附近的人搜索以及消息队列等。 总结 根据业务需求选择合适的数据类型可以显著提升性能和代码简洁性。缓存和计数器优先使用字符串类型;对象属性选择哈希类型;队列和栈使用列表类型;去重和集合运算选择集合类型;排行榜和范围查询使用有序集合类型;对于特殊需求可以结合使用位图、HyperLogLog或地理空间等高级类型。