redis数据结构
redis支持五种数据类型:string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(sorted set:有序集合)。
一、字符串
string类型一个key对应一个value。
string类型是redis最基本的数据类型,以二进制形式存储,最大能存储 512MB。
string形式:set name Alice , get name
二、哈希
hash可以理解为存储一个对象的多个属性,即一个对象的多个key和value的对应关系。
每个 hash 可以存储 232 - 1 键值对(40多亿)
hash形式:hmset student name alice age 20 hobby reading ,hmget student name age hobby
三、列表
list是一个存储字符串的有序集合,可以从首尾增加或移出元素。
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
list形式:ipush lastname li,ipush lastname wang,ipush lastname zhang
四、集合
set是一个存储字符串的无序集合,集合中的元素唯一即不重复。
五、有序集合
有序集合和集合一样也是字符串的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。