Redis 是一个高性能的key-value数据库
不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
1 字符串(string)
string是redis最基本的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个键最大能存储512MB。
localhost:0>set test let_me_see
"OK"
localhost:0>get test
"let_me_see"
2 哈希(hash)
Redis hash 是一个键值(key=>value)对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
localhost:0>HMSET runoobkey name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
"OK"
localhost:0>HGETALL runoobkey
1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"
localhost:0>HGET runoobkey name
"redis tutorial"
localhost:0>hkeys runoobkey
1) "name"
2) "description"
3) "likes"
4) "visitors"
localhost:0>hvals key
localhost:0>hvals runoobkey
1) "redis tutorial"
2) "redis basic commands for caching"
3) "20"
4) "23000"
3 列表(list)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
localhost:0>lpush test_list redis
"2"
localhost:0>lpush test_list mongodb
"3"
localhost:0>lrange test_list 0 10
1) "mongodb"
2) "redis"
3) "redis"
localhost:0>llen test_list
"3"
localhost:0>lindex test_list 2
"redis"
4 集合(set)
Redis的Set是string类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
localhost:0>sadd test_set redis
"1"
localhost:0>sadd test_set mongodb
"1"
localhost:0>sadd test_set mysql
"1"
localhost:0>sadd test_set mysql
"0"
localhost:0>smembers test_set
1) "mongodb"
2) "redis"
3) "mysql"
localhost:0>smembers test_set
1) "mongodb"
2) "redis"
3) "mysql"
localhost:0>smembers test_set
1) "mongodb"
2) "redis"
3) "mysql"
localhost:0>scard test_set
"3"
5 有序集合(zset)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
localhost:0>zadd test_z 1 redis
"1"
localhost:0>zadd test_z 2 localhost:0>redis
"0"
"ERR unknown command ''"
localhost:0>zadd test_z 2 redis
"0"
localhost:0>zadd test_z 2 mongodb
"1"
localhost:0>zadd test_z 2 mysql
"1"
localhost:0>zadd test_z 3 localhost:0>mysql
"0"
"ERR unknown command ''"
localhost:0>zadd test_z 3 mysql
"0"
localhost:0>zrange test_z 0 10
1) "mongodb"
2) "redis"
3) "mysql"
localhost:0>zrange test_z 0 10 withscores
1) "mongodb"
2) "2"
3) "redis"
4) "2"
5) "mysql"
6) "3"
6 参考资料
Redis 数据类型
http://www.runoob.com/redis/redis-data-types.html
Redis五种数据类型介绍
http://blog.csdn.net/hechurui/article/details/49508735