想知道l和r哪个代表左哪个代表右?这个简单的问题其实很有趣!

以下是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或地理空间等高级类型。