Redis基本命令使用::hash篇

Redis有6大基本类型,分别是字符串(String)、列表(List)、集合(set)、哈希结构(hash)、有序集合(zset)和基数(HyperLogLog)

redis在线体验地址:http://try.redis.io/

哈希(Hash)

介绍:

Redis hash 是一个存储多个键值对的映射表,适用于存储对象的属性,比如存储用户信息、用户Session信息等。在实际项目中使用的频率比较多,之前主要用于存储用户基本信息、用户临时订单信息、产品信息等。

创建缓存

  1. 创建一个缓存

    • 命令格式:hset key field value

    • 🌰

      1
      2
      3
      4
      hset cc name 'cc'

      ---
      将cc的name属性的值设置为cc
  2. 批量创建缓存

    • 命令格式:hmset key filed value [field value ...]

    • 🌰

      1
      2
      3
      4
      hmset cc name 'cc' age 19 avatar 'a.png' status 1

      ---
      设置cc对象的name、age、avatar、status属性的值
  3. 设置一个key不存在field的value,若field已存在则不设置

    • 命令格式:hsetnx key field value

    • 🌰

      1
      2
      3
      4
      hsetnx cc name 'yy'

      ---
      若对象cc的name属性不存在,则设置cc的name属性值为yy

查看缓存

  1. 查看key下所有属性+值

    • 命令格式:hgetall key

    • 🌰

      1
      2
      3
      4
      5
      6
      7
      8
      hgetall cc

      ---
      获取对象cc的所有属性,返回数据格式:
      field1
      value1
      field2
      value2
  2. 查看key下所有的值

    • 命令格式:hvals key

    • 🌰

      1
      2
      3
      4
      5
      hvals cc

      ---
      返回cc对象的所有属性的值,仅返回值,不返回属性名称
      等同于 ”hmget key 所有field“ 命令
  3. 查看key下所有的field名称

    • 命令格式:hkeys key

    • 🌰

      1
      2
      3
      4
      hkeys cc

      ---
      返回对象cc的所有属性名
  4. 查看key的某一field的值

    • 命令格式:hget key field

    • 🌰

      1
      2
      3
      4
      hget cc name

      ---
      返回对象cc的name属性的值,若对象无此属性,则返回nil
  5. 查看key的多个field的值

    • 命令格式:hmget key field [field ...]

    • 🌰

      1
      2
      3
      4
      hmget cc name age status

      ---
      返回对象cc的name、age、status属性
  6. 迭代对象的所有属性(适用于大对象)

    • 命令格式:hscan key course [MATCH pattern] [COUNT num]

    • 🌰

      1
      hscan cc 0 MATCH *e COUNT 1
  7. 查看对象的属性数

    • 命令格式:hlen key

    • 🌰

      1
      2
      3
      4
      hlen cc

      ---
      返回对象cc的属性数量

其他命令

  1. 删除一个/多个属性

    • 命令格式:hdel key field [field ...]

    • 🌰

      1
      2
      3
      4
      hdel cc name age

      ---
      删除对象cc的name、age属性
  2. 查看对象属性是否存在

    • 命令格式:hexists key field

    • 🌰

      1
      2
      3
      4
      hexists cc name

      ---
      对象cc若存在属性name,则返回1,不存在则返回0