面试题
redis 都有哪些数据类型?分别在哪些场景下使用比较合适?
面试官心理分析
面试题剖析
redis 主要有以下几种数据类型:
string
hash
list
set
sorted set
string
这是最简单的类型,就是普通的 set 和 get,做简单的 KV 缓存。
hash
这个是类似 map 的一种结构,这个一般就是可以将结构化的数据,比如一个对象(前提是这个对象没嵌套其他的对象)给缓存在 redis 里,然后每次读写缓存的时候,可以就操作 hash 里的某个字段。
list
list 是有序列表,这个可以玩儿出很多花样。
比如可以通过 list 存储一些列表型的数据结构,类似粉丝列表、文章的评论列表之类的东西。
比如可以通过 lrange 命令,读取某个闭区间内的元素,可以基于 list 实现分页查询,这个是很棒的一个功能,基于 redis 实现简单的高性能分页,可以做类似微博那种下拉不断分页的东西,性能高,就一页一页走。
比如可以搞个简单的消息队列,从 list 头怼进去,从 list 尾巴那里弄出来。
set
set 是无序集合,自动去重。
把两个大 V 的粉丝都放在两个 set 中,对两个 set 做交集。
sorted set
sorted set 是排序的 set,去重但可以排序,写进去的时候给一个分数,自动根据分数排序。