一、Redis 都有哪些数据类型
- String
最基本的类型,普通的set和get,做简单的kv缓存 - hash
这是一个类似map 的一种结构,这个一般可以将结构化的数据,比如一个对象(前提是这个对象没有嵌套其他的对象)给缓存在redis里,然后每次读写缓存的时候,可以操作hash 中的某个字段 - list
有序列表,这个可玩性很高
比如,可以通过list 存储一些列表型的数据结构,蕾西粉丝列表,文章的评论之类的东西。
比如,可以通过 lrange 命令,从某个元素开始读取多少个元素,可以基于 list 实现分页查询,这是一个很棒的功能,基于 redis 实现简单的高性能分页,可以做类似微博那种下拉不断页的东西,性能高,就一页一页走 - set
无序集合,自动去重
直接基于 set 将系统里需要去重的数据扔进去,自动就给去重了
可以基于 set 玩交集、并集、差集,比如交集,可以把两个人的粉丝列表整一个交集,看看两个人的共同好友是谁 - sorted set
排序的 set,去重但是可以排序,写进去的时候给一个分数,自动根据分数排序,这个可以玩出很多花样,最大的特点是有个分数可以自定义排序规则
比如,要想根据时间对数据排序,那么可以在写入的时候使用某个时间作为分数,sorted set 就自动给你按照时间排序了
排行榜:将每个用户以及其对应的什么分数写入,zadd board score username,接着 zrevrange board 0 99 ,就可以获取排名前100的用户,zrank board username,可以看到用户在排行榜里的排名。