• redis_hash


    hash命令

    • hset key field value 设置hash

      为user:1 添加一对filed-value
      127.0.0.1:6379> hset user:1 name tomcat
      (integer) 1
      
      #hsetnx 不存在则添加
      
    • hget key field 获取值

      127.0.0.1:6379> hget user:1 name
      "tomcat"
      
    • hdel key field [field] 删除field

      127.0.0.1:6379> hdel user:1 name
      (integer) 1
      127.0.0.1:6379> hdel user:1 age
      (integer) 0
      
      #时间复杂度O(k),k是field的个数
      
    • hlen 计算filed的个数

      127.0.0.1:6379> hset user:1 name tomcat
      (integer) 1
      127.0.0.1:6379> hset user:1 age 10
      (integer) 1
      127.0.0.1:6379> hset user:1 city usa
      (integer) 1
      127.0.0.1:6379> hlen user:1    
      (integer) 3
      
    • hmget key field [field] #时间复杂度O(k),k是field的个数

    • hmset key field value [field value ...]

      127.0.0.1:6379> del user:1	
      (integer) 1
      127.0.0.1:6379> keys *
      (empty list or set)
      127.0.0.1:6379> hmset user:1 name mike  age 13 city tianjin
      OK
      127.0.0.1:6379> hmget user:1 name age 
      1) "mike"
      2) "13"
      
      #时间复杂度O(k),k是field的个数
      
    • hexists key field 判断field是否存在

      127.0.0.1:6379> HEXISTS user:1  name
      (integer) 1
      
    • hkeys 获取所有的field

      127.0.0.1:6379> hkeys user:1
      1) "name"
      2) "age"
      3) "city"
      
      #时间复杂度O(n),n是field的总数
      
    • hvals key 获取所有的值

      127.0.0.1:6379> hvals  user:1
      1) "mike"
      2) "13"
      3) "tianjin"
      #时间复杂度O(n),n是field的总数
      
      
    + hgetall key  获取键的所有field-value
    
      ```shell
      127.0.0.1:6379> hgetall user:1
      1) "name"
      2) "mike"
      3) "age"
      4) "13"
      5) "city"
      6) "tianjin"
      #时间复杂度O(n),n是field的个数
      
      #hscan 可替代
      
    
    • hincrby key filed
    • hincrbyfloat key field
    • hstrlen(redis3.2以上支持)

    内部编码

    • ziplist(压缩列表):hash类型元素个数<hash-max-ziplist-entries(default512) 或者 所有的值<hash-max-ziplist-value(64字节) 同时满足以上2个条件,则使用更加紧凑的ziplist实现多个元素的连续存储。

    • hashtable(哈希表):当hash类型无法满足ziplist的条件时,此时ziplist的读写效率会下降,而hashtable的读写时间复杂度为O(1);

    • 127.0.0.1:6379> hmset hashkey f1 v1 f2 v2
      OK
      127.0.0.1:6379> object encoding hashkey
      "ziplist"
      
  • 相关阅读:
    嵌入式操作系统-小型任务调度的理解(转)
    数据分析-pandas基础入门(一)
    硬件电路设计——低通滤波器的应用
    Docker
    AWK总结
    DNS解析
    TCP/IP
    Mysql优化部分总结
    Nginx配置文件释义备查
    时间模块
  • 原文地址:https://www.cnblogs.com/zhoujun007/p/13131627.html
Copyright © 2020-2023  润新知