zoukankan      html  css  js  c++  java
  • Redis[三] @Hash 哈希

    Redis的哈希值是字符串字段和字符串值之间的映射,所以他们是表示对象的完美数据类型

    在Redis中的哈希值,可存储超过400十亿键值对。

    redis 提供了2套操纵 一种是批量 一种是非批量

    假设需要存储一个用户信息

    批量操作

    定义一个key为user1的hash 包含属性 name=xstao、age=22、sex=1、password=123 并获取user1中name的属性值

    redis 127.0.0.1:6379[1]> hmset user1 name xstao age 22 sex 1 password 123
    OK
    redis 127.0.0.1:6379[1]> hmget user1 name
    1) "xstao"

    获取user1的全部key 、 value、全部的key value

    redis 127.0.0.1:6379[1]> hgetall user1
    1) "name"
    2) "xstao"
    3) "age"
    4) "22"
    5) "sex"
    6) "1"
    7) "password"
    8) "123"
    redis 127.0.0.1:6379[1]> hkeys user1
    1) "name"
    2) "age"
    3) "sex"
    4) "password"
    redis 127.0.0.1:6379[1]> hvals user1
    1) "xstao"
    2) "22"
    3) "1"
    4) "123"

    获取user1这个hash的字段数量

    redis 127.0.0.1:6379[1]> hlen user1
    (integer) 4

    为hash user1添加一个字段 并查看添加后的数据结构

    redis 127.0.0.1:6379[1]> hmset user1 ext1 test
    OK
    redis 127.0.0.1:6379[1]> hgetall user1
    1) "name"
    2) "xstao"
    3) "age"
    4) "22"
    5) "sex"
    6) "1"
    7) "password"
    8) "123"
    9) "ext1"
    10) "test"

    更新key为user1 sex的值为0 并返回赋值成功后的新值

    redis 127.0.0.1:6379[1]> hset user1 sex 0
    (integer) 0

    非批量

    从命令格式上来看批量都加了m 而非批量都没有 比如批量hmset 非批量 hset

    定义一个哈希表user2 第一次执行成功 ,第二次执行批量添加失败了。因为hset仅支持单个添加

    redis 127.0.0.1:6379[1]> hset user2 name abc
    (integer) 1
    redis 127.0.0.1:6379[1]> hset user3 name abc age 2
    (error) ERR wrong number of arguments for 'hset' command
    redis 127.0.0.1:6379[1]>

    其他一些常用命令命令

    //判断user1中name是否存在 返回1表示已存在 返回0标识没有这个name字段key
    redis 127.0.0.1:6379[1]> hexists user1 name
    (integer) 1
    //针对user1 中age(年龄)字段自增2 返回自增后的值
    redis 127.0.0.1:6379[1]> hincrby user1 age 2
    (integer) 24
    //针对user1 中age(年龄)字段浮点数自增2.5 返回自增后的值
    redis 127.0.0.1:6379[1]> hincrbyfloat user1 age 2.5
    "28.5"

    笑笑笑技术圈

  • 相关阅读:
    37.altium designer中的class和rules?
    36.Altium Designer(Protel)网络连接方式Port和Net Label详解
    35.在PCB中删除元件
    34.pad designer警告
    33.allegro中Autosilk top, Silkscreen top 和Assembly top三个什么区别(转)
    32.DDR2仿真结果
    31.DDR2问题3_waring?
    30.DDR2问题2_local_init_done为什么没拉高?
    29.DDR2问题1仿真模型文件
    lnmp 基础设置
  • 原文地址:https://www.cnblogs.com/peachyy/p/7443541.html
Copyright © 2011-2022 走看看