String 类型并不是适用于所有场合的,它有一个明显的短板,就是它保存数据时所消耗的内存空间较多。
用什么数据结构可以节省内存?
Redis 有一种底层数据结构,叫压缩列表(ziplist),这是一种非常节省内存的结构。
如何用集合类型保存单值的键值对?
以图片 ID 1101000060 和图片存储对象 ID 3302000080 为例,我们可以把图片 ID 的前 7 位(1101000)作为 Hash 类型的键,把图片 ID 的最后 3 位(060)和图片存储对象 ID 分别作为 Hash 类型值中的 key 和 value。
要想选择合适的集合,我们就得了解常用的集合统计模式
所谓的聚合统计
就是指统计多个集合元素的聚合结果,包括:统计多个集合的共有元素(交集统计);把两个集合相比,统计其中一个集合独有的元素(差集统计);统计多个集合的所有元素(并集统计)。
排序统计
List 是按照元素进入 List 的顺序进行排序的,而 Sorted Set 可以根据元素的权重来排序
二值状态统计
bitmap 三百六五天,设置每天的状态0 ,1. setbit userkey1 1 (第二天) 1(状体0,1)
Redis 的各种关键操作,以及其中的阻塞式操作,我们来总结下刚刚找到的五个阻塞点:
集合全量查询和聚合操作;
bigkey 删除;
清空数据库;
AOF 日志同步写;
从库加载 RDB 文件。