Redis概述

| 标签 Redis 

1. Redis 介绍

  • Redis 是一个开源的 key-value 存储系统。
  • 和 Memcached 类似,它支持存储的 value 类型相对更多,包括 string (字符串)、list (链表)、set (集合)、zset (sorted set –有序集合) 和 hash(哈希类型)。
  • 这些数据类型都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
  • 在此基础上,Redis 支持各种不同方式的排序。
  • 与 memcached 一样,为了保证效率,数据都是缓存在内存中。
  • 区别的是 Redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
  • 并且Redis在此基础上实现了 master-slave (主从) 同步。

2. 应用场景

配合关系型数据库做高速缓存

  • 高频次,热门访问的数据,降低数据库 IO。
  • 分布式架构,做 session 共享。

image.png

多样的数据结构存储持久化数据 image.png

3. 相关技术

Redis 使用的是单线程 + 多路 IO 复用技术:

多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用 select 和 poll 函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。

串行 vs 多线程 + 锁(memcached) vs 单线程 + 多路 IO 复用 (Redis) (与 Memcache 三点不同:支持多数据类型,支持持久化,单线程 + 多路 IO 复用) 。


上一篇     下一篇