什么是redis
Redis(Remote Dictionary Server) 是一个C语言编写的高性能非关系型(NoSQL)的键值对数据库。
Redis支持存储键与五种类型值的映射,键类型为字符串,值类型分别为字符串(String)、列表(List)、集合(Hash)、散列表(Set)、有序集合(Sorted Set)。
Redis的数据是放在内存中的,所以读写速度非常快,每秒可以处理超过10W次读写操作。
Redis常用来做缓存与分布式锁。

为什么使用redis

  • 高性能,第一次访问数据从硬盘中取过程缓慢 内存比硬盘快的多,如过直接从缓存中取,比从硬盘效率高的多
  • 高并发,数据库支持的并发请求量远远低于缓存支持的并发量
  • 分布式,各个服务实例使用的数据一致

    Redis优缺点

    优点
  • 读写快,Redis能读的速度是110000次/s,写的速度是81000次/s。

  • 支持数据持久化,AOF与RDB
  • 支持事务,所有操作都是原子性的,同时也支持多个操作合并后原子性执行
  • 数据结构丰富
  • 主从复制,支持读写分离

    缺点
  • 容量受内存限制,所以不可做海量数据高性能读写

Redis为什么快

  • 完全基于内存
  • 单线程,没有多线程切换消耗CPU、不用考虑锁,没有加锁解锁的消耗
  • 多路 I/O 复用模型,非阻塞 IO

    Redis线程模型