跳至主要內容

概述

mozzie大约 2 分钟Redis分布式Redis分布式

概述

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。

Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

核心特性

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

参考文档:Redis 入门open in new window

单线程 + 多路IO复用

单线程 + 多路 IO 复用

简单理解就是:一个服务端进程可以同时处理多个套接字描述符。

  • 多路:多个客户端连接(连接就是套接字描述符)
  • 复用:使用单进程就能够实现同时处理多个客户端的连接

传统方式通过增加进程和线程的数量来并发处理多个套接字,免不了上下文切换的开销;而 IO 多路复用只需要一个进程就能够处理多个套接字,从而解决了上下文切换的问题。其发展可以分 selectpollepoll 三个阶段来描述。

五大数据类型

类型简介典型应用场景
String二进制安全的字符串,最大 512M缓存、计数器、分布式锁
Hashfield-value 映射,类似 Java Map存储对象(用户信息等)
List双向链表,按插入顺序排序消息队列、最新列表
Set无序集合,元素唯一去重、共同好友、点赞
Zset带 score 的有序集合排行榜、按权重排序的延迟队列
贡献者: mozzie