Redis是什么

  • 开源
  • 基于键值的存储服务系统
  • 多种数据结构
  • 高性能、功能丰富

Redis的特性

  • 速度快
  • 持久化
  • 多种数据结构
  • 支持多种编程语言
  • 主从复制
  • 高可用、分布式

速度快

读写性能优异, Redis能读的速度是110000次/s,写的速度是81000次/s。

原因

  • 数据是存放在内存中(主要原因)
  • 使用C语言实现
  • 使用单线程的线程模型

持久化(断电数据不丢失)

Redis将所有的数据保存在内存中,对数据的更新将异步的保存在磁盘中,支持AOFRDB两种持久化方式。

多种数据结构

除了支持string类型的value外还支持hashsetzsetlist等数据结构。

除了这些还有一些其他的数据结构:

  • BitMaps:位图
  • HyperLogLog:超小内存唯一值计数
  • GEO:地理信息定位

主从复制

高可用和分布式

典型使用场景

  • 缓存系统:用户请求获取数据,如果缓存中有,可以直接从缓存中获取;如果没有,则从数据库中获取并在缓存中保存
  • 计数器:微博的转发数和点赞数
  • 消息队列系统:实现类似RabbitMQ的功能
  • 排行榜:比如微博的热搜排行榜
  • 社交网络:粉丝数、关注数等
  • 实时系统:垃圾邮件处理系统