Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
<strong>String(字符串)</strong>
string是redis最基本的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个键最大能存储512MB。
<pre>172.16.255.231:7001> set foot bar
-> Redirected to slot [11286] located at 172.16.255.231:7003
OK
172.16.255.231:7003> get foot
"bar"
</pre>
<strong>Hash(哈希)</strong>
Redis hash 是一个键名对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
每个 hash 可以存储 232 -1 键值对(40多亿)。
<pre>172.16.255.231:7002> HMSET user:1 username runoob password runoob points 200
OK
172.16.255.231:7002> HGETALL user:1
- "username"
- "runoob"
- "password"
- "runoob"
- "points"
- "200"
</pre>
<strong>List(列表)</strong>
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
<pre>172.16.255.231:7002> LPUSH runoob redis
-> Redirected to slot [11055] located at 172.16.255.231:7003
(integer) 1
172.16.255.231:7003> LPUSH runoob mongodb
(integer) 2
172.16.255.231:7003> LPUSH runoob rabitmq
(integer) 3
172.16.255.231:7003> LRANGE runoob
(error) ERR wrong number of arguments for 'lrange' command
172.16.255.231:7003> LRANGE runoob 0 10 - "rabitmq"
- "mongodb"
- "redis"
</pre>
<strong>Set(集合)</strong>
Redis的Set是string类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
<pre>
172.16.255.231:7003> SADD runoop redis
-> Redirected to slot [6492] located at 172.16.255.231:7002
(integer) 1
172.16.255.231:7002> SADD runoop mongodb
(integer) 1
172.16.255.231:7002> SADD runoop rabitmq
(integer) 1
172.16.255.231:7002> SMEMBERS runoop - "rabitmq"
- "mongodb"
- "redis"
</pre>
<strong>zset(sorted set:有序集合)</strong>
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
<pre>172.16.255.231:7002> zadd runooa 0 redis
(integer) 1
172.16.255.231:7002> zadd runooa 0 mongodb
(integer) 1
172.16.255.231:7002> zadd runooa 0 rabitmq
(integer) 1
172.16.255.231:7002> ZRANGEBYSCORE runooa 0 1000 - "mongodb"
- "rabitmq"
- "redis"
</pre>
总结一下,redis主要有上面5个类型
String、Hash、Set、ZSet、List
String : set和get
Hash : hmset和hgetall
Set : sadd和 smembers
ZSet : zadd 和zrangebyscore
List : LPUSH/Rpush和LRanger
在以下几章专门分别来讲解着5个。