Redis数据类型
1)Redis有五种数据类型
(1)string(字符串)
(2)hash(哈希)
(3)list(列表)
(4)set(集合)
(5)zset(sorted set:有序集合)
1.String——字符串
Redis string(字符串)类型是Redis中最基本的类型,一个key对应一个value(key-value)。
Redis string类型是二进制安全的。Redis中的string可以包含任何数据,包括图片或者数列化的对象。
string类型是Redis最基本的数据类型,string类型的值(value)最大能存储512mb。
例子:
redis 127.0.0.1:6379> SET xs "小商同学加油" OK redis 127.0.0.1:6379> GET xs "小商同学加油"
2.Hash——哈希
Redis hash 是键值(key=>value)对集合.
Redis hash 是一个string类型的field和value的映射表,hash特别适合存储对象。
例子:
redis 127.0.0.1:6379> DEL xs redis 127.0.0.1:6379> HMSET xs field1 "Hello" field2 "World" "OK" redis 127.0.0.1:6379> HGET xs field1 "Hello" redis 127.0.0.1:6379> HGET xs field2 "World"
3.List——列表
Redis list是简单的字符串列表,按照插入的顺序排列。可以给列表的头部(左边)或者尾部(右边)添加一个元素。
列表最多可以存储 232 - 1个元素(40多亿)
例子:
redis 127.0.0.1:6379> DEL xs redis 127.0.0.1:6379> lpush xs redis (integer) 1 redis 127.0.0.1:6379> lpush xs mongodb (integer) 2 redis 127.0.0.1:6379> lpush xs rabitmq (integer) 3 redis 127.0.0.1:6379> lrange xs 0 10 1) "rabitmq" 2) "mongodb" 3) "redis" redis 127.0.0.1:6379>
4.Set——集合
Redis Set 是string类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)
集合中最大的成员数为 232 - 1个(40多亿)。
sadd命令
添加一个string元素到key对应的set集合中,成功返回1,如果元素已经在集合中存在的话返回0(集合元素的唯一性)。
sadd key member
例子:
redis 127.0.0.1:6379> DEL xs redis 127.0.0.1:6379> sadd xs redis (integer) 1 redis 127.0.0.1:6379> sadd xs mongodb (integer) 1 redis 127.0.0.1:6379> sadd xs rabitmq (integer) 1 redis 127.0.0.1:6379> sadd xs rabitmq (integer) 0 redis 127.0.0.1:6379> smembers xs 1) "redis" 2) "rabitmq" 3) "mongodb"
5.zset(sorted set)——有序集合
Redis zset和set一样也是string类型元素的集合,且具有唯一性,不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。Redis正式通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但是分数(score)是可以重复的。
zadd命令
添加元素到集合,元素再集合中存在测更新对应的分数(score)。
zadd key score member
例子:
redis 127.0.0.1:6379> DEL xs redis 127.0.0.1:6379> zadd xs 0 redis (integer) 1 redis 127.0.0.1:6379> zadd xs 0 mongodb (integer) 1 redis 127.0.0.1:6379> zadd xs 0 rabitmq (integer) 1 redis 127.0.0.1:6379> zadd xs 0 rabitmq (integer) 0 redis 127.0.0.1:6379> > ZRANGEBYSCORE xs 0 1000 1) "mongodb" 2) "rabitmq" 3) "redis"