Redis 数据类型



  • 数据类型

    Redis支持5种数据类型。
  • 字符串

    Redis字符串是字节序列。Redis中的字符串是二进制安全的,这意味着它们的已知长度不受任何特殊终止字符的确定。因此,您可以在一个字符串中存储高达512MB的任何内容。
    例:
    
    redis 127.0.0.1:6379> SET name "jc2182" 
    OK 
    redis 127.0.0.1:6379> GET name 
    "jc2182"
    
    
    在上面的示例中,SET和GET是Redis命令,名称是Redis中使用的键,而jc2182是存储在Redis中的字符串值。
    注意 -字符串值的最大长度为512兆字节。
  • 哈希(hash)

    Redis哈希是键值对的集合。Redis哈希表是字符串字段和字符串值之间的映射。因此,它们用于表示对象。
    例:
    
    redis 127.0.0.1:6379> HMSET user:1 username jc2182 password 
    jc2182 points 200 
    OK 
    redis 127.0.0.1:6379> HGETALL user:1  
    1) "username" 
    2) "jc2182" 
    3) "password" 
    4) "jc2182" 
    5) "points" 
    6) "200"
    
    
    在上面的示例中,哈希数据类型用于存储包含用户基本信息的用户对象。这里HMSET,HGETALL是Redis的命令,而user: 1是key。
    每个哈希最多可以存储232-1个键-值对(超过40亿个)。
  • 列表(list)

    Redis列表只是字符串列表,按插入顺序排序。您可以将元素添加到头部或尾部的Redis列表中。
    例:
    
    redis 127.0.0.1:6379> lpush jc2182 redis 
    (integer) 1 
    redis 127.0.0.1:6379> lpush jc2182 mongodb 
    (integer) 2 
    redis 127.0.0.1:6379> lpush jc2182 rabitmq 
    (integer) 3 
    redis 127.0.0.1:6379> lrange jc2182 0 10  
    
    1) "rabitmq" 
    2) "mongodb" 
    3) "redis"
    
    
    每个列表的长度为232-1个元素(超过40亿个)。
  • 无序集合(set)

    Redis集合是无序的字符串集合。在Redis中,您可以添加,删除和测试O(1)时间复杂度中成员的存在。
    例:
    
    redis 127.0.0.1:6379> sadd jc2182 redis 
    (integer) 1 
    redis 127.0.0.1:6379> sadd jc2182 mongodb 
    (integer) 1 
    redis 127.0.0.1:6379> sadd jc2182 rabitmq 
    (integer) 1 
    redis 127.0.0.1:6379> sadd jc2182 rabitmq 
    (integer) 0 
    redis 127.0.0.1:6379> smembers jc2182  
    
    1) "rabitmq" 
    2) "mongodb" 
    3) "redis" 
    
    
    注 –在上面的示例中,rabitmq被添加了两次,但是由于集合的唯一属性,它仅被添加了一次。成员的一组最大数目是232-1(4294967295,超过40亿每集合成员)。
  • 有序集合

    Redis排序集合类似于Redis无序集合,不重复的字符串集合。不同的是,排序集合中的每个成员都与一个分数相关联,这个分数用来使排序集合有序,从最小到最大。虽然成员是唯一的,分数可能是重复的。
    例:
    
    redis 127.0.0.1:6379> zadd jc2182 0 redis 
    (integer) 1 
    redis 127.0.0.1:6379> zadd jc2182 0 mongodb 
    (integer) 1 
    redis 127.0.0.1:6379> zadd jc2182 0 rabitmq 
    (integer) 1 
    redis 127.0.0.1:6379> zadd jc2182 0 rabitmq 
    (integer) 0 
    redis 127.0.0.1:6379> ZRANGEBYSCORE jc2182 0 1000  
    
    1) "redis" 
    2) "mongodb" 
    3) "rabitmq"