Redis常用的五种数据类型分别为:String,List,Hash,Set、Zset
String:字符串是通过key-value存储,
redis 127.0.0.1:6379> SET StringKey redis
OK
redis 127.0.0.1:6379> GET StringKey
"redis"
List:列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
redis 127.0.0.1:6379> LPUSH ListKey redis
(integer) 1
redis 127.0.0.1:6379> LPUSH ListKey mongodb
(integer)2
redis 127.0.0.1:6379> LPUSH ListKey mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE ListKey 0 10
1) "mysql"
2) "mongodb"
3) "redis"
Hash:格式为key field value,key表示整个map的key,field标志map中的key,value表示map中key对应的值,类似Map<K,<K,V>> map;下面同时批量添加一个map的很多字段
127.0.0.1:6379> HMSET HashKey name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
OK
127.0.0.1:6379> HGETALL HashKey
1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"
Set: String 类型的无序集合,集合成员是唯一的,不重复。实现是通过Hash实现,只不过value值时null,非常类似java中的HashSet是基于HashMap实现的。
redis 127.0.0.1:6379> SADD runoobkey redis
(integer) 1
redis 127.0.0.1:6379> SADD runoobkey mongodb
(integer) 1
redis 127.0.0.1:6379> SADD runoobkey mysql
(integer) 1
redis 127.0.0.1:6379> SADD runoobkey mysql
(integer) 0
redis 127.0.0.1:6379> SMEMBERS runoobkey
1) "mysql"
2) "mongodb"
3) "redis"
Zset:有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
redis 127.0.0.1:6379> ZADD runoobkey 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD runoobkey 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE runoobkey 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"
网友评论