Wardon&ET 博客

Redis数据类型笔记

Redis共有5大数据类型String(字符串)、Hash(散列)、List(列表)、Set(无序集合)、Zset(有序集合)。

1、String(字符串)

最基本的数据类型,一个key对应一个value,可以包含任何字符型数据,一个键最大能存储512MB。

redis> SET name ET
OK
redis> GET name
"ET"

2、Hash(散列)

是一组键值对的集合,类似于mysql的一条数据,适合存储一个对象,每个可以存储 2^32 - 1 键值对(40多亿)。

redis> HMSET USER1 name "ET" sex "female"
OK
redis> HGETALL USER1
1)"name"
2)"ET"
3)"sex"
4)"female"

3、List(列表)

是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边),一个列表最多可以包含 2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素),适合做队列。

redis> LPUSH DO_TASK_QUEUE "TASK1" "TASK2"
redis> RPUSH DO_TASK_QUEUE "TASK3"
redis> LLEN DO_TASK_QUEUE
3
redis> LRANGE DO_TASK_QUEUE 0 -1
"TASK2"
"TASK1"
"TASK3"

4、Set(无序集合)

是string类型的无序集合,通过哈希表实现,所以添加,删除,查找的复杂度都是O(1),集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。

redis> SADD USER "ET"
redis> SADD USER "WARDON"
redis> SMEMBERS USER
"ET"
"WARDON"

5、Zset(有序集合)

是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)

redis> ZADD USER 99 "ET"
redis> ZADD USER 99 "WARDON"
redis> ZADD USER 0 "OTHER"
redis> ZRABGE USER 0 -1 WITHSCORE
1)"ET"
2)99
3)"WARDON"
4)99
5)"OTHER"
6)0