文章目录
1. 特性
1.1 速度快
正常情况下,Redis 执行命令的速度非常快,官方给出的数字是读写性能可以达到 10 万 / 秒,当然这也取决于机器的性能,但这里先不讨论机器性能上的差异,只分析⼀下是什么造就了 Redis 如此之快,可以大概归纳为以下四点:
- Redis 的所有数据都是存放在内存中的,把数据放在内存中是 Redis 速度快的最主要原因。
- Redis 是用 C 语⾔实现的,⼀般来说 C 语⾔实现的程序 “距离” 操作系统更近,执行速度相对会更快。
- Redis 使用了单线程,预防了多线程可能产⽣的竞争问题。
Redis 在 6.0 版本引⼊了多线程机制,但主要也是在处理网络和 IO(多路复用,epoll),不涉及到数据命令,即命令的执行仍然采用了单线程模式。 - Redis的核心功能都是比较简单的逻辑,都是一些比较简单的操作内存中的数据结构的功能。
1.2 基于键值对的方式存储组织数据
几乎所有的编程语⾔都提供了类似字典的功能,例如 C++ 里的 map、Java 里的 map、Python 里的 dict 等,类似于这种组织数据的方式叫做基于键值对的方式,与很多键值对数据库不同的是,Redis 中的值不仅可以是字符串,而且还可以是具体的数据结构,这样不仅能便于在许多应用场景的开发,同时也能提⾼开发效率。
在Redis,key都是string,value可以是字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(ordered set /zet)等数据结构。
MySQL是通过表的方式来存储组织数据的,这种叫做关系型数据库,Redis是通过键值对的方式来存储组织数据的,这种叫做非关系行数据库。
1.3 Programmability(可编程的)
在操作方面