zoukankan      html  css  js  c++  java
  • Redis之HASH

    HASH 哈希

    Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

    Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

    示例

    HSET key field value ­­ 设置 key 指定的哈希集中指定字段的值

    > hset myhash field1 Hello
    

    hget ­­ 获取指定的hash field。

    > hget myhash field1  
     "Hello"
    > hget myhash field3  
     (nil)
    

    由于数据库没有field3,所以取到的是一个空值nil.

    HSETNX key field value ­­ 只在 key 指定的哈希集中不存在指定的字段时,设置字段的值。如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联。如果字段已存在,该操作无效果。

    > hsetnx myhash field "Hello"   
    (integer) 1
    > hsetnx myhash field "Hello"   
    (integer) 0
    

    第一次执行是成功的,但第二次执行相同的命令失败,原因是field已经存在了。

    hmset ­­ 同时设置hash的多个field。

    > hmset myhash field1 Hello field2 World   
    > OK
    

    hmget ­­ 获取全部指定的hash filed。

    > hmget myhash field1 field2 field3   
    1) "Hello"
    2) "World"
    3) (nil)
    

    hincrby ­­ 指定的hash filed 加上给定值。

    > hset myhash field3 20  
     (integer) 1
    > hget myhash field3  
     "20"
    > hincrby myhash field3 -8   
    (integer) 12
    > hget myhash field3   
    "12
    

    hexists ­­ 测试指定field是否存在。

    > hexists myhash field1
      (integer) 1
    > hexists myhash field9
      (integer) 0   
      通过上例可以说明field1存在,但field9是不存在的。
    

    hdel 从 key 指定的哈希集中移除指定的域

    127.0.0.1:6379> hkeys myhash
    1) "field1"
    2) "field"
    3) "field2"
    4) "field3"
    127.0.0.1:6379> hdel myhash field
    (integer) 1
    127.0.0.1:6379> hkeys myhash
    1) "field1"
    2) "field2"
    3) "field3"
    127.0.0.1:6379>
    

    hlen ­­ 返回指定hash的field数量。

    > hlen myhash
      (integer) 4
    

    hkeys ­­ 返回hash的所有field。

    > hkeys myhash   
    > 1) "field2"   
    > 2) "field"   
    > 3) "field3"
    

    说明这个hash中有3个field。

    hvals ­­ 返回hash的所有value。

    > hvals myhash   
    1) "World"   
    2)"Hello"   
    3)"12"
    

    说明这个hash中有3个field。

    hgetall ­­ 获取某个hash中全部的filed及value。

    > hgetall myhash   
    1) "field2"   
    2) "World" 
    3) "field"  
    4) "Hello"   
    5) "field3"   
    6) "12"
    

    hvals -- 返回 hash 的所有 value。

    127.0.0.1:6379> hvals myhash
    1) "hello"
    2) "hello"
    3) "hello2"
    4) "12"
    

     

  • 相关阅读:
    Modbus软件开发实战指南 之 开发自己的Modbus Poll工具
    Divide Two Integers-不用'/' '*' '%'操作实现整数的除法
    用最少的砝码称出1到100克的物品
    Binary Tree Inorder Traversal-非递归实现中序遍历二叉树
    leetcode Word Break-单词划分
    位运算题目
    leetcode Single Number II
    leetcode 4Sum
    leetcode 3Sum Closest
    Unique Binary Search Trees-计算表示相同序列的不同BST个数
  • 原文地址:https://www.cnblogs.com/wzjbg/p/6596940.html
Copyright © 2011-2022 走看看