Redis基本介绍


Redis是什么

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型有:字符串类型 散列类型 列表类型 集合类型,端口默认为6379。

Redis的特点

  • 高性能:支持超过 100K+ 每秒的读写频率。
  • 支持多种数据类型:除了key-value类型的数据,同时还提供String,List,Set,hash,以及Ordered Set等数据结构的存储。
  • 原子性:Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
  • 数据持久化:可以将内存中的数据保存在磁盘中,在服务器宕机或者重启时,可以重新读取使用。
  • 单线程:避免了不必要的上下文切换以及加锁导致的一系列性能问题。
  • 功能丰富:Redis还支持 publish/subscribe, 通知, key 过期等等特性。

Redis的应用场景

1. 热点数据缓存
redis访问速度快,所以对于那些经常查询且不常修改的数据首选使用redis缓存,像新闻内容、商品内容等。
2. 计数器
对于视频播放,文章阅读,排行榜等数据计数的情况,并发量较大且对实时性要求比较高,Redis可以极大减轻服务器的压力。
3. 消息队列
像秒杀,抢购这种活动,可以用于流量削峰,异步处理实时性低的业务(但效果比RabbitMQ,kafka这种专门的消息队列中间件要差点)。
4. 分布式session
分布式集群架构中的session分离。

Redis存在的问题

数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。简而言之,Redis受限于特定的场景,专注于特定的领域之下。