1. 内存存储
数据存储在内存中:Redis将所有数据保存在内存中,内存的访问速度远快于磁盘,因此读写操作非常迅速。
持久化可选:虽然Redis主要依赖内存,但它也支持将数据持久化到磁盘,确保数据不会因重启而丢失。
2. 单线程模型
避免上下文切换:Redis采用单线程处理命令,避免了多线程的上下文切换和竞争条件,简化了设计并提升了性能。
高效的事件驱动:Redis使用I/O多路复用技术(如epoll、kqueue),能够高效处理大量并发连接。
3. 高效的数据结构
优化的数据结构:Redis提供了多种高效的数据结构,如字符串、哈希、列表、集合、有序集合等,这些结构经过专门优化,操作速度快。
底层实现优化:例如,Redis的哈希表使用渐进式rehash,避免一次性rehash导致的性能抖动。
4. 非阻塞 I/O
异步 I/O 操作:Redis采用非阻塞I/O,能够在等待 I/O 操作时继续处理其他请求,提升了并发处理能力。
5. 协议简单
RESP 协议:Redis使用简单的文本协议(RESP),减少了协议解析的开销,提升了通信效率。
6. 丰富的功能
内置功能:Redis支持事务、发布/订阅、Lua脚本等,减少了应用层的复杂性,提升了整体性能。
7. 持久化机制
RDB 和 AOF :Redis提供RDB快照和AOF日志两种持久化方式,用户可以根据需求选择,确保数据安全的同时不影响性能。
8. 主从复制与集群
高可用性:Redis支持主从复制和集群模式,能够水平扩展,提升系统的可用性和性能。