支持的数据类型有五种:
string(字符串)、hash(哈希)、list(列表)、set(集合)及zset(sorted set:有序集合);
下面分别对这几种类型进行简单的Redis存取操作
1:string(字符串)
几种里面最常用,也是最简单的类型,使用方式如下:
redis 127.0.0.1:6379> SET name "runoob" OK redis 127.0.0.1:6379> GET name "runoob"
注意:一个键最大能存储512MB。这个容量已经是相当大了,基本不可能超过,纯字符串哪里会超过512M的,所以放心使用即可!
2:hash(哈希)
哈希是一个键名对类型的,键和值都是string类型的,适合存储一个对象,例如我要存储一个叫zhangsan的人,年龄 26岁,身高180:
127.0.0.1:6379> HMSET zhangsan age 26 height 180 OK 127.0.0.1:6379> HGETALL zhangsan
1) "age"
2) "26"
3) "height"
4) "180"
每个 hash 可以存储 232 -1 键值对(40多亿),也完全够用了
3:list(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
redis 127.0.0.1:6379> lpush runoob redis(从最左边插入) (integer) 1 redis 127.0.0.1:6379> rpush runoob mongodb(从最右边插入) (integer) 2 redis 127.0.0.1:6379> lpush runoob rabitmq(从最左边插入) (integer) 3 redis 127.0.0.1:6379> lrange runoob 0 10(返回第1个到第10个值,lrange runoob 0 -2->表示从左边第一个到右边倒数第二个) 1) "rabitmq"
2) "redis"
3) "mongodb"
4:set(集合)
Redis的Set是string类型的无序集合。无序但唯一,不重复
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
添加一个string元素到,key对应的set集合中,成功返回1,如果元素已经在集合中返回0,key对应的set不存在返回错误。
redis 127.0.0.1:6379> sadd runoob redis mongodb
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers runoob
1) "rabitmq"
2) "mongodb"
3) "redis"
集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员),完全够用
5:zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
zadd key score member (语法)
redis 127.0.0.1:6379> zadd runoob 0 redis 1 mongodb
(integer) 2
redis 127.0.0.1:6379> zadd runoob 2 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd runoob 2 rabitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE runoob 0 1000 (从0到1000分按分数排序)
1) "redis"
2) "mongodb"
3) "rabitmq"