Redis的功能与特点
Redis是一个开源的、支持网络、高性能的键值数据库。Redis源于远程字典服务器(Remote Dictionary Server),使用ANSI C语言编写,并提供多种语言的API。Redis有时也称数据结构服务器,因为值(Value)可以是字符串(String)、哈希表(Hash)、链表(List)、集合(Set)和有序集合(Sorted Set)等多种类型。
Redis利用内存存储数据,定期通过异步操作将内存中的数据存储到磁盘中,或者将数据操作记录保存到日志中。这两种内存数据持久化存储的方式称为RDB镜像方式和AOF(Append Only File)日志方式。RDB镜像方式是将内存中所有数据生成副本,然后将其存储在磁盘上;AOF日志方式是将每次执行的Redis命令记录到磁盘的AOF文件中。由此可见,RDB镜像方式是全量保存,而AOF日志方式是增量保存。因此,Redis既支持内存操作,又具有持久化存储数据的能力。
由于数据访问是在内存中完成的,所以Redis具有超高的性能,其处理速度非常快,每秒可以处理超过10万次数据读/写操作。Redis还支持一定程度的事务性(只保证一套事务命令要么都执行,要么都不执行);还允许为键-值对设置生命周期(Time To Live,TTL),根据TTL定期自动删除过期的数据,这一特征非常适合验证码、限时优惠等场景。
虽然在内存中完成数据操作可以获得极高的速度,但内存容量的限制注定Redis不善于处理大数据量的读/写操作。
Redis支持集群中多个数据库之间的主从同步,因此适合读多写少的场合。