Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。redis
String(字符串)安全
string 是 redis 最基本的类型,你能够理解成与 Memcached 如出一辙的类型,一个 key 对应一个 value。数据结构
string 类型是二进制安全的。意思是 redis 的 string 能够包含任何数据。好比jpg图片或者序列化的对象。网站
string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。对象
经常使用命令:set、get、decr、incr、mget等。排序
注意:一个键最大能存储512MB。队列
Hash(哈希)图片
Redis hash 是一个键值(key=>value)对集合;是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。rem
每一个 hash 能够存储 232 -1 键值对(40多亿)。字符串
经常使用命令:hget、hset、hgetall等。
应用场景:存储一些结构化的数据,好比用户的昵称、年龄、性别、积分等,存储一个用户信息对象数据。
List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你能够添加一个元素到列表的头部(左边)或者尾部(右边)。
list类型常常会被用于消息队列的服务,以完成多程序之间的消息交换。
经常使用命令:lpush、rpush、lpop、rpop、lrange等。
列表最多可存储 232 - 1 元素 (4294967295, 每一个列表可存储40多亿)。
Set(集合)
Redis的Set是string类型的无序集合。和列表同样,在执行插入和删除和判断是否存在某元素时,效率是很高的。集合最大的优点在于能够进行交集并集差集操做。Set可包含的最大元素数量是4294967295。
集合是经过哈希表实现的,因此添加,删除,查找的复杂度都是O(1)。
应用场景:
一、利用交集求共同好友。
二、利用惟一性,能够统计访问网站的全部独立IP。
三、好友推荐的时候根据tag求交集,大于某个threshold(临界值的)就能够推荐。
经常使用命令:sadd、spop、smembers、sunion等。
集合中最大的成员数为 232 - 1(4294967295, 每一个集合可存储40多亿个成员)。
zset(sorted set:有序集合)
Redis zset 和 set 同样也是string类型元素的集合,且不容许重复的成员。
不一样的是每一个元素都会关联一个double类型的分数。redis正是经过分数来为集合中的成员进行从小到大的排序。
zset的成员是惟一的,但分数(score)却能够重复。
sorted set是插入有序的,即自动排序。
经常使用命令:zadd、zrange、zrem、zcard等。
当你须要一个有序的而且不重复的集合列表时,那么能够选择sorted set数据结构。
应用举例:
(1)例如存储全班同窗的成绩,其集合value能够是同窗的学号,而score就能够是成绩。(2)排行榜应用,根据得分列出topN的用户等。