zoukankan      html  css  js  c++  java
  • redis哈希操作

            用户可以通过执行hset命令为哈希中的指定字段设置值;

    127.0.0.1:6379> hset hash field value
    

      根据给定的字段是否存在于散列中,hset命令的行为也会有所不同,如果给定字段不存在与散列中,那么这一次设置就是一次创建操作,命令将会在散列里面关联起给定的字段和值,然后返回1;如果给定的字段原本存在于散列里面,那么这次设置就是一次更新操作,命令会将用户给定的新值取覆盖掉原有的旧值,然后返回0

    127.0.0.1:6379> hset ar titlr "hello world"
    (integer) 1
    127.0.0.1:6379> hset ar titlor "hello world"
    (integer) 1
    127.0.0.1:6379> hset ar cr "hello world"
    (integer) 1
    

      使用新值覆盖旧值

           如果用户调用hset命令时给定的字段已经存在于散列当中,那么hset命令将会使用用户给定的新值去覆盖已有的旧值,并返回0表示是一次更新操作

    127.0.0.1:6379> hset ar cr "paopaotang"
    (integer) 0
    127.0.0.1:6379> hset ar titlr "miaohuatang"
    (integer) 0
    

      hsetnx只在字段不存在的情况下为它设置值

    127.0.0.1:6379> hsetnx hash field value 
    

      hsetnx命令在字段不存在并且成功为它设置值时返回1,在字段已经存在并导致操作失败执行返回0

    127.0.0.1:6379> hsetnx ar cr "xiaowugui"
    (integer) 0   失败
    

      如果值不存在,命令会顺利执行

    127.0.0.1:6379> hsetnx ar co "xiaowugui"
    (integer) 1     成功执行
    

      hget 获取字段的值

    127.0.0.1:6379> hget hash field 
    

      获取 ar散列里co字段的值

    127.0.0.1:6379> hget  ar co
    "xiaowugui"
    

      如果给定散列里的字段不存在则会返回空,与给一个不存在的散列里的一个不存在的字段效果一样都返回空

    127.0.0.1:6379> hsetnx ar co "xiaowugui"
    (integer) 1
    127.0.0.1:6379> hget ag ci
    (nil)
    127.0.0.1:6379> hget ao ci
    (nil)
    

      HINCRBY 对存储的整数值执行加减法操作

          与字符串键的incrby命令一样,如果散列的字段里存储着能被redis解释为整数的数字,那么用户就可以使用hincrby命令为该字段的值加上指定的整数增量

    127.0.0.1:6379> hget ao ci 
    "852"
    127.0.0.1:6379> hincrby ao ci 90
    (integer) 942
    127.0.0.1:6379> hget ao ci 
    "942"
    

        执行减法操作,必须传负数

    127.0.0.1:6379> hincrby ao ci -290
    (integer) 652
    127.0.0.1:6379> hget ao ci
    "652"
    

      增量必须解释为整数,异常情况处理

    127.0.0.1:6379> hset vx yu o
    (integer) 1
    127.0.0.1:6379> hincrby vx yu 5
    (error) ERR hash value is not an integer
    127.0.0.1:6379> hincrby ao ci "jn"
    (error) ERR value is not an integer or out of range
    127.0.0.1:6379> hincrby ao ci 3.8
    (error) ERR value is not an integer or out of range
    

      hincrbyfloat 对存储的数字执行浮点数加减法操作

           hincrbyfloat命令的作用与hincrby命令类似,它们之间主要的区别在于hincrbyfloat不仅可以使用整数作为增量,还可以使用浮点数作为增量

    127.0.0.1:6379> hincrbyfloat hash field increment 
    

      hincrbyfloat命令在成功执行假发操作后,将返回给定字段的当前值作为结果

    127.0.0.1:6379> hget hh hg 
    "100.0099647"
    127.0.0.1:6379> hincrbyfloat hh hg 13.2
    "113.2099647"
    

      增量与字段值的类型限制,正如之前所说,hincrbyfloat命令不仅可以使用浮点作为增量,还可以使用整数作为增量

    127.0.0.1:6379> hget gif ij
    "3.14"
    127.0.0.1:6379> hincrbyfloat gif ij 10086
    "10089.13999999999999968"
    

      此外,不仅存储浮点数的字段可以执行hincrbyfloat命令,存储整数的字段也可以执行hincrbyfloat命令

    127.0.0.1:6379> hset cf u 90
    (integer) 1
    127.0.0.1:6379> hincrbyfloat cf u 10
    "100"
    127.0.0.1:6379> hincrbyfloat cf u 10.2
    "110.2"
    

      执行减法操作

    127.0.0.1:6379> hincrbyfloat cf u -10.2
    "100"
    127.0.0.1:6379> hincrbyfloat cf u -10.2
    "89.8"
    

      hstrlen :获取字段的长度

    127.0.0.1:6379> hstrlen hash field
    

      示例

    127.0.0.1:6379> hget qie g
    "yuiokm"
    127.0.0.1:6379> hstrlen qie g
    (integer) 6
    

      如果给定的字段或散列不存在,命令将返回0

    127.0.0.1:6379> hstrlen qie o
    (integer) 0
    127.0.0.1:6379> hstrlen u g
    (integer) 0
    

      检查字段是否存在hexists

          hexists 用法

    127.0.0.1:6379> hexists hesh field 
    

      如果哈希里包含字段则返回1,不包含返回0

    127.0.0.1:6379> hexists qie g
    (integer) 1
    127.0.0.1:6379> hexists qie o
    (integer) 0
    

       HDEL删除字段

            用法

    127.0.0.1:6379> hdel hash field [field ...] 
    

      当给的字段成功从哈希里删除是,命令返回1 ;如果给定的哈希字段不存在,命令返回0

    127.0.0.1:6379> hset titu gf "yu"
    (integer) 1
    127.0.0.1:6379> hset titu gh "yu"
    (integer) 1
    127.0.0.1:6379> hset titu go "yu"
    (integer) 1
    127.0.0.1:6379> hset titu to "u"
    (integer) 1
    127.0.0.1:6379> hdel titu gh
    (integer) 1
    127.0.0.1:6379> hdel titu to
    (integer) 1
    

      hlen获取哈利字段数量

    127.0.0.1:6379> hlen hash 
    

      查看 titu 哈希的字段

    127.0.0.1:6379> hlen titu
    (integer) 3
    

      如果用户给定的哈希不存在则返回0

    127.0.0.1:6379> hlen jb
    (integer) 0
    

      hmset:一次为多个字段设置值

    127.0.0.1:6379> hmset hash field [field value   ...] 
    

      为cx设置多个字段

    127.0.0.1:6379> hmset cx cq "9" cs "8" fd "6" 
    OK
    

      更新cx里的值

    127.0.0.1:6379> hmset cx cq "6" cs "4" fd "8" 
    OK
    

      hmget : 一次获取多个值

    127.0.0.1:6379> hmget hash field [field ...] [f
    

      获取 cx里“cq”“cs”值

    127.0.0.1:6379> hmget cx cq cs 
    1) "6"
    2) "4"
    

      与hget命令一样,如果用户给定的字段不存在那么将返回空

    127.0.0.1:6379> hmget cx cq vc cs 
    1) "6"
    2) (nil)   --vc 不存在
    3) "4"
    

      hkeys、hvals、hgetall:获取所有字段、获取所有值和获取所有字段与值

     HKEYS hash   字段
     HVALS hash   值
     HGETALL hash 字段与值
    

      获取 cx 所有字段

    127.0.0.1:6379> HKEYS cx
    1) "cq"
    2) "cs"
    3) "fd"
    

      获取cx所有值

    127.0.0.1:6379> HVALS cx
    1) "6"
    2) "4"
    3) "8"
    

      获取所有字段与值

    127.0.0.1:6379> HGETALL cx
    1) "cq"   字段
    2) "6"    值
    3) "cs"
    4) "4"
    5) "fd"
    6) "8"
    

      在hgetall命令返回中。没两个元素表示哈希里的一对字段和值,其中奇数位的元素为字段,偶数行为字段的值,如果用户给定哈希不存在将返回空列表

    127.0.0.1:6379> HGETALL lj
    (empty list or set)
    127.0.0.1:6379> HGETALL lj
    (empty list or set)
    127.0.0.1:6379> HKEYS ll
    (empty list or set)
    

      

      

    草都可以从石头缝隙中长出来更可况你呢
  • 相关阅读:
    AVPlayer中的问题
    封装网络请求
    FMDB的使用方法
    设置UITextField占位符的颜色和字体
    SQL SERVER性能优化综述
    关于学习
    学习java中对《类与对象》的认知
    Felling1-java
    关于学习JAVA第二章的心得
    学习JAVA第一章的心得
  • 原文地址:https://www.cnblogs.com/rdchenxi/p/12375368.html
Copyright © 2011-2022 走看看