Redis是一个开源,BSD授权,高性能的key-value数据库,使用ANSI C编写。Redis的出现很大程度补偿了memcached这类key-value存储的不足,因为:
Memcached基本只支持简单的key-value存储,不支持枚举,不支持持久化和复制能功能。
Redis除key-value之外,还支持list,set,sorted set,hash等众多数据结构,提供了KEYS进行枚举操作,但不能在线上使用,如果需要枚举线上数据,Redis提供了工具可以直接扫描其dump文件,枚举出所有数据,Redis还同时提供了持久化和复制等功能。
如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:
- Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
- Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
Redis和memcached不同之处还在以下方面:1.网络IO模型 2.内存管理方面 3.数据一致性问题 4.存储方式及其它方面(上文提到了)等等,这里不在细说。