1. 字符串(String)
- 使用场景:
- 缓存用户信息、配置信息等简单的键值对数据。
- 计数器,如文章的浏览量、点赞数。
- 常用方法:
- `SET key value`:设置键值对。
- `GET key`:获取键对应的值。
- `INCR key`:将键对应的值自增 1 。
2. 列表(List)
- 使用场景:
- 消息队列,如任务队列、消息通知队列。
- 最新文章列表,按照插入顺序展示。
- 常用方法:
- `LPUSH key value`:在列表头部添加元素。
- `RPUSH key value`:在列表尾部添加元素。
- `LPOP key`:从列表头部弹出一个元素。
- `RPOP key`:从列表尾部弹出一个元素。
3. 哈希(Hash)
- 使用场景:
- 存储对象信息,如用户的详细信息。
- 存储商品的详细信息。
- 常用方法:
- `HSET key field value`:设置哈希表中的字段和值。
- `HGET key field`:获取哈希表中指定字段的值。
- `HGETALL key`:获取哈希表中所有的字段和值。
4. 集合(Set) - 使用场景:
使用场景:
- 存储标签、关注者等不重复的数据。
- 共同关注、共同好友等交集计算。
- 常用方法:
- `SADD key member`:向集合中添加元素。
- `SMEMBERS key`:获取集合中的所有元素。
- `SINTER key1 key2`:计算两个集合的交集。
5. 有序集合(Sorted Set)
- 使用场景:
- 排行榜,如成绩排名、销量排名。
- 按时间顺序排序的事件。
- 常用方法:
- `ZADD key score member`:添加带有分数的元素。
- `ZRANGE key start stop`:按照分数范围获取元素。
- `ZREVRANGE key start stop`:按照分数倒序范围获取元素。
三种特殊类型:
-
位图(Bitmap):
- 使用场景:
- 用于大量数据的二值状态统计(如用户签到记录、用户在线状态)。
- 常用方法:
SETBIT key offset value
:对指定偏移量设置位值。GETBIT key offset
:获取指定偏移量的位值。
- 使用场景:
-
HyperLogLog:
- 使用场景:
- 用于大量数据的基数统计(如网站的每日独立访客数),在内存占用极小的情况下,能给出一个近似的统计结果。
- 常用方法:
PFADD key element [element...]
:向 HyperLogLog 添加元素。PFCOUNT key [key...]
:返回给定 HyperLogLog 的基数估算值。
- 使用场景:
-
地理空间(Geospatial):
- 使用场景:
- 存储地理位置信息,并可以进行地理位置相关的查询(如附近的商家查询、距离计算)。
- 常用方法:
GEOADD key longitude latitude member [longitude latitude member...]
:将指定的地理空间位置(经度、纬度、名称)添加到指定的键中。GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [COUNT count] [ASC|DESC]
:以给定的经纬度为中心,找出指定半径内的元素
- 使用场景: