Redis简介
Redis(全称Remote Dictionary Server远程字典服务)是以键值对形式存储数据的NoSQL数据库,其核心逻辑与字典类似,纸质字典通过字母排序或笔画来查找字词,Redis通过键来查找对应的值。
Redis是使用C语言进行编写的,如果在Linux操作系统上通过编译方式安装Redis,需要同时安装C语言库的支持。
Redis是一个三高的数据库。采用内存存储、线程模型、网络IO模型、数据结构、持久化实现高性能,采用主从复制、哨兵集群实现高可用,采用分片集群实现高拓展。
在6.0版本前,Redis是单线程的,因为在过去,相比CPU而言,内存容量和网络IO是制约数据库吞吐能力的短板,不需要引入多线程。随着网络技术的发展,网络吞吐能力的提高,数据库对网络请求的处理产生了瓶颈,因此在新版本中引入多线程,提高处理网络请求的速度,能够提高一倍以上的性能。
Redis的吞吐能力与数据库连接数有关。据官方数据,在数据库连接数较低且合适时(如500个连接),Redis的QPS可达100000以上,在连接数过高时(如50000个连接),QPS会降低到60000左右,有兴趣的可以参考官方的基准程序测试《How fast is Redis?》,官方地址。