Redis对象详解

五种基本数据类型

Redis支持五种基本数据类型:String,Hash,List,Set,Zset / Sorted Set

首先,读者需要明白,Redis的数据类型是根据 Value来划分的,Key默认全都是String类型。所以以下的文章全都是针对Redis Key Value对中的Value进行讨论的。

  • String: redis最基本的类型,与高级程序设计语言中的String大同小异。

    redis 127.0.0.1:6379> SET key "哈哈哈"
    OK
    redis 127.0.0.1:6379> GET key
    "哈哈哈"
    
  • Hash:一个键值对集合,类似Java中的HashMap,每一个Key 对应的 Value就是一个Map,Hash特别适合用于存储对象

    redis 127.0.0.1:6379> DEL key
    redis 127.0.0.1:6379> HMSET key field1 "Hello" field2 "World"
    "OK"
    redis 127.0.0.1:6379> HGET key field1
    "Hello"
    redis 127.0.0.1:6379> HGET key field2
    "World"
    
  • List:一个简单的字符串列表,也就是说List中的每一个元素都是String类型(此处的String并不单单可以表示字符串,对象通过序列化的方式也可以转变成字符串,常见的像JSON序列化,Redis原生的序列化),类似于Java的LinkedList,并按照插入顺序排序,你可以添加一个元素到列表的头部或者尾部

    redis 127.0.0.1:6379> DEL runoob
    redis 127.0.0.1:6379> lpush runoob redis
    (integer) 1
    redis 127.0.0.1:6379> lpush runoob mongodb
    (integer) 2
    redis 127.0.0.1:6379> lpush runoob rabbitmq
    (integer) 3
    redis 127.0.0.1:6379> lrange runoob 0 10
    1) "rabbitmq"
    2) "mongodb"
    3) "redis"
    
  • Set:Redis的Set是String类型的无序集合,类似Java的HashSet,也就是Set中的每一个元素也是String类型的,他的特点是添加、删除、查找的复杂度都是O(1)

    redis 127.0.0.1:6379> DEL runoob
    redis 127.0.0.1:6379> sadd runoob redis
    (integer) 1
    redis 127.0.0.1:6379> sadd runoob mongodb
    (integer) 1
    redis 127.0.0.1:6379> sadd runoob rabbitmq
    (integer) 1
    redis 127.0.0.1:6379> sadd runoob rabbitmq
    (integer) 0
    redis 127.0.0.1:6379> smembers runoob
    
    1) "redis"
    2) "rabbitmq"
    3) "mongodb"
    
  • ZSet:有序集合,类似于Java中的TreeMap,但是底层并不是用红黑树实现的,会根据score排序,并且支持范围查询,socre是一个double类型,member是一个String类型(注意,理论上member可以放任意数据,但是一般生产上仅用来存类似id这种数据,如果存一整个对象的话,有可能发生BigKey问题)

    • 添加元素到有序集合中
    zadd key score member 
    
    • 与TreeMap不同的地方在于ZSet不仅可以 用 score 找对应的 member,也可以用 member 找相应的 value

    • redis 127.0.0.1:6379> DEL runoob
      redis 127.0.0.1:6379> zadd runoob 0 redis
      (integer) 1
      redis 127.0.0.1:6379> zadd runoob 0 mongodb
      (integer) 1
      redis 127.0.0.1:6379><
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值