Redis 简介

Redis 简介

Redis 是什么

Redis是一种基于键值对(key-value)的 NoSQL 数据库

Redis 的特点

速度极快
  • Redis 的所有数据都是存放在内存中,这是 Redis 速度快的最主要原因
  • Redis 是用 C 语言实现的,一般来说 C 语言实现的程序“距离”操作系统更近,执行速度相对会更快
  • Redis 使用了单线程架构,预防了多线程可能产生的线程切换和竞争问题
数据类型丰富

与很多键值对数据库不同的是,Redis中的值不仅可以是字符串,而且还可以是具体的数据结构,它主要提供了5种数据结构:字符串、哈希、列表、集合、有序集合。这样不仅能便于在许多应用场景的开发,同时也能够提高开发效率。

简单稳定
  • Redis 的源码很少
  • Redis 使用单线程模型,这样不仅使得 Redis 服务端处理模型变得简单,而且也使得客户端开发变得简单
  • Redis 不需要依赖于操作系统中的类库,Redis 自己实现了事件处理的相关功能,应用更加稳定
支持持久化

通常看,将数据放在内存中是不安全的,一旦发生断电或者机器故障,重要的数据可能就会丢失,因此 Redis 提供了两种持久化方式:RDB 和 AOF,即可以用两种策略将内存的数据保存到硬盘中,这样就保证了数据的可持久性。

主从复制

Redis 提供了复制功能,实现了多个相同数据的 Redis 副本

高可用和分布式

Redis 从 2.8 版本提供了高可用实现 Redis Sentinel(哨兵模式),它能够保证 Redis 节点的故障发现和故障自动转移。

Redis 从 3.0 版本提供了分布式实现 Redis Cluster(集群模式),它是 Redis 真正的分布式实现,提供了高可用、读写和容量的扩展性。

Redis 的应用场景

数据缓存(最多使用)

缓存的两种形式:

  • 页面缓存:第一次从数据库中读取,然后生成一个静态页面,以后所有的读取,只加载这个静态页面就可以了

  • 数据缓存:由于一个页面有几种需要从不同的缓存中读取数据的模块,所以不适合使用页面缓存。

为了提高用户的请求速度和降低服务器的负载,降低数据库的读写次数,将一些在短时间之内不会发生变化且被频繁访问热点数据,存放就到缓存中,其性能优于 Memcached。 (类似于 MyBatis 的缓存机制)

热点数据:数据库中数据被访问的频率是不均匀的,频繁被访问的数据称为热点数据((Hot Spot Data)

排行榜系统

Redis 提供了列表和有序集合数据结构,合理地使用这些数据结构可以很方便地构建各种排行榜系统。

计数器应用

利用 Redis 的原子性,可以轻松地使用 Redis INCR(自增) 和 DECR(自减) 命令来构建计数系统,关键是不用担心数据库的并发性问题,一般用于网站访问统计

数据过期处理

利用 Redis 支持的过期时间特性,可以定时清除过期数据,如定期活动(精确到毫秒)

消息队列系统

消息队列系统可以说是一个大型网站的必备基础组件,因为其具有业务解耦、非实时业务削峰等特性。

Redis 提供了发布订阅功能和阻塞队列的功能,虽然和专业的消息队列比还不够足够强大,但是对于一般的消息队列功能基本可以满足,如秒杀、抢购、12306 等。

社交网络

赞/踩、粉丝、共同好友/喜好、推送、下拉刷新等是社交网站的必备功能,由于社交网站访问量通常比较大,而且传统的关系型数据不太适合保存这种类型的数据,Redis 提供的数据结构可以相对比较容易地实现这些功能,如新浪博客大量使用 Redis 存储数据和实现博客功能。

posted @ 2021-11-10 09:51  嘛了对就念来过倒  阅读(417)  评论(0编辑  收藏  举报