一、简史
Redis是Salvatore Sanfilippokai开发的,它是一个开源的、使用C语言编写的、基于内存的、也可以持久化的日志型、key-value数据库,并提供多种语言的API的内存高速缓存数据库。它支持丰富的数据类型,如:String、hash、list、set、zset。
二、优点
1、性能极高:Redis读的速度是110000次/s,写的速度是81000次/s;
2、丰富的数据类型:Redis支持二进制的String、Hash、List、Set、Ordered Set等数据类型;
3、原子性:Redis所有的操作都是原子性的,要么执行成功要么失败完全不执行;
4、丰富的特性:Redis支持发布/订阅,通知,key过期等等特性。
三、数据类型
Redis支持五种数据类型:String、hash、list、set、zset;
1、String
(1)String是Redis最基本的类型,一个key对应一个value;
(2)String类型是二进制安全的,可以包含任何数据,比如序列化的对象;
(3)一个key最大能存储512MB。
2、hash
(1)Redis hash是一个键值对集合;
(2)Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象;
(3)一个key对于一个map,map中还有key-value,使用hash对key进行归类。
3、list(有序可重复)
(1)Redis列表是简单的字符串列表,按照插入顺序排序;
(2)可以添加一个元素导入列表的头部(左边)或者尾部(右边)。
4、set(无序不可重复)
(1)Redis的set是String类型的无序集合;
(2)集合是通过哈希表实现的,所以添加、删除、查找的复杂度是O(1)。
5、zset(有序不可重复)
(1)Redis中zset和set一样也是String类型元素的集合,且不允许重复的成员;
(2)不同的是每个元素都会关联一个double类型的分数;
(3)Redis是通过分数来为集合中的成员进行(从小到大)排序;
(4)zset的成员是唯一的,但分数却可以重复。