简介
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,基本数据类型:字符串(String),散列表(Hash),链表(List),集合(Set),有序集合(SortedSet),特殊数据类型:地理位置(Geospatial),基数统计(HyperLogLog),位图场景(Bitmap)。
Redis 内置了 复制(Replication),LUA脚本(LuaScripting), LRU驱动事件(LruEviction),事务(Transactions)和不同级别的磁盘持久化(Persistence),并通过Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(HighAvailability)。
基本数据类型
- 字符串(String)
- 散列表(Hash)
- 链表(List)
- 集合(Set)
- 有序集合(SortedSet)
字符串(String)
应用场景
- 计数器(点赞,视频播放量)
- 统计多单位的数量
- 粉丝数
- 对象缓存存储
散列表(Hash)
应用场景
- 存储部分变更数据,比如存储用户信息等等
链表(List)
应用场景
- 消息队列:利用List的PUSH操作,将任务存在List中,然后工作线程再用POP操作将任务取出进行执行。Redis还提供了操作List中某一段的api,你可以直接查询,删除List中某一段的元素。
- 消息排队,消息队列(Lpush、Rpop)、栈(Lpush、Lpop)
- 使用list可以构建队列系统,使用sorted set甚至可以构建有优先级的队列系统。
集合(Set)
应用场景
- 微博、用户将所有关注的人都放入到一个set集合当中,将它的粉丝也放在一个集合中。
- 共同关注、共同爱好、二度好友、QQ的好友推荐(六度分割理论)
有序集合(SortedSet)
应用场景
- 存储班级成绩表、工资表排序
特殊数据类型
地理位置(Geospatial)
应用场景
基数统计(HyperLogLog)
应用场景
位图场景(Bitmap)
应用场景
Q&A
Q:一个字符串类型的值能存储最大容量是多少?
A:一个字符串类型的值能存储的最大容量为512M。