Redis 是 C/S 架构分为客户端和服务端,在实际生产环境中redis的服务端往往部署在linux服务器中,而 Redis 客户端往往集成在编程语言中,比如 java 的 redis客户端、python 的 redis 客户端等。
Redis 客户端和服务端是通过 redis自定义协议远程交互的
没有特殊说明的情况下,我们常说的 Redis 都指的是服务端
特性
- 属于Nosql数据库
- 属于 key-value 型数据库,所有的数据都要有一个 key,所有类型的数据都存在 value中
- 使用C语言开发
- 开源
- 基于内存,所以速度很快
- 支持持久化
- 支持多种数据类型
- 多语言客户端支持
- 多数据库
- 支持事务
工作模式
Redis 是 单进程 的,同一时间只能处理一个任务 Redis 是 阻塞式的,如果一个任务执行需要很长时间,后面的任务只能排队等待
这样的工作模式的优点是
- 不会存在并发问题,降低系统复杂度
但也有对应的缺点
- 不适合存储大容量数据(超过100k)
应用场景
- 缓存
- 数据库
- 队列 :redis 中有一个list类型的数据结构,它提供了 pop 、push 两个操作,这两个操作是原子性的,基于list数据结构和原子性操作,我们可以把它当做队列来使用
安装 Redis
参考 Redis 安装