Redis(Remote Dictionary Server)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis是C语言开发的一个开源高性能键值对的内存数据库,可以用来做数据库、缓存、消息中间件等场景,是一种NoSQL(not-only sql,非关系型数据库)的数据库2。Redis与一般的关系型数据库相比,具有数据类型丰富、持久化、缓存等优点。
选择Redis的原因如下12:
- Redis是一个开源的支持网络、可基于内存亦可持久化的日志型数据库,提供多种语言的API。
- Redis通过IO多路复用程序来监听来自客户端的大量连接,不需要额外创建多余的线程来监听客户端的大量连接,降低了资源的消耗。
- Redis是一个事件驱动程序,服务器需要处理两类事件:文件事件和时间事件。其中,文件事件处理器以单线程方式运行,但通过使用IO多路复用程序来监听多个套接字,文件事件处理器既实现了高性能的网络通信模型,又可以很好地与Redis服务器中其他同样以单线程方式运行的模块进行对接,这保持了Redis内部单线程设计的简单性。