入门

哈希类型也是key-value结构,key是字符串类型,其value分为两个部分:field和value

增–hset

public Long hset(String key,String field,String value)

将指定的哈希字段设置为指定的值。
如果key不存在,则会创建一个包含哈希的新key。
时间复杂度:O(1)

public String hget(String key,String field)

如果key包含哈希,则检索与指定字段关联的值。
如果找不到该字段或该键不存在,则返回一个特殊的“ nil”值。
时间复杂度:O(1)

public java.util.List<String> hmget(String key,String... fields)

检索与指定字段关联的值。
如果某些指定字段不存在,则返回nil值。 不存在的key被视为空哈希。
时间复杂度:O(N)(其中N为字段数)

//创建一个hash类型
> hset myhash field1 "hello" field2 "world"
(integer) 2
//依据field获取hash类型的值,获取多个字段要用hmget.
> hget myhash field1 field2
(error) ERR wrong number of arguments for 'hget' command
//hget一次只能查看一个field的值
> hget myhash field1
"hello"
> hget myhash field2
"world"
> hmget myhash field1 field2
1) "hello"
2) "world"

删-hdel

删除kv对中v的field的,返回值是成功删除了多少个元素,就是成功删除了一个元素,就返回1,成功删除了2个元素,就返回2,etc

//删除key myhash 中的字段1
> hdel myhash field1
(integer) 1
> hmget myhash field1
1) (nil)
> hmget myhash field2
1) "world"

改-hset

实现增删改查的改,增和改其实是同一个,覆盖原有的就可以了

//新建一个hash类型
> hset person username liming age 23 height 180
(integer) 3
> hgetall person
1) "username"
2) "liming"
3) "age"
4) "23"
5) "height"
6) "180"
//修改一个hash类型的value,会覆盖原先的哦
> hset person username liming age 26 height 180
(integer) 0
> hgetall person
1) "username"
2) "liming"
3) "age"
4) "26"
5) "height"
6) "180"

查 --hget,hmget,hgetall

hget 查一个字段
hmget 查多个字段
hgetall 查所有字段

关于value的两部分

如果把hash类型理解为kv对,那么这个v事实上包含两部分
field和value
如何获取所有的field?又如何获取所有的value?

> hkeys person
1) "username"
2) "age"
3) "height"> hvals person
1) "liming"
2) "26"
3) "180"

从这又可以看出,hash类型很像map,里面存了一堆kv对~

判断是否包含field

判断hash是否包含某个field,包含返回1,不包含返回0
如果写代码,这个也是会常用的,一种关系的判断

> hexists person age
(integer) 1
> hexists person wc
(integer) 0

总结

hash类型无非也是增删改查

增 hset
删 hdel
改 hset
查 hget,hmget,hgetall

如果把hash类型类比下java的map类型,或许就容易理解了~

redis数据类型之hash入门相关推荐

  1. Redis数据类型(hash 类型)

    Redis数据类型(hash 类型) hash 类型及操作 ① 概述 ② 相关命令列表 ③ 命令示例 hash 类型及操作 ① 概述 Redis中的Hash类型可以理解是具有String Key和St ...

  2. redis数据类型之String入门

    入门 字符串怎么来的key呢?因为redis是kv型的数据库,自然所有的类型都需要key了~ 这里的key可以类比java中的变量名 增–set,mset,msetnx,setnx > set ...

  3. redis数据类型之set入门

    入门 redis的set是一个无序的,不可重复的集合.大部分方法以s开头 常用方法解析 sadd 将指定的成员添加到存储在key的设置值中. 如果member已经是集合的成员,则不执行任何操作. 如果 ...

  4. redis数据类型之List入门练习

    入门 redis的list类型存储时采用linkedlist redis存储list类型可以实现队列和堆栈,队列是先进先出,而堆栈是先进后出. 如果使用的是lpush,底层用的就是栈,先进后出 如果使 ...

  5. 08 redis数据类型:hash

    ### hash简介 在memcached中,我们经常将一些结构化的信息打包成hashmap,在客户端序列化存储为一个字符串的值(一般是json格式),比如用户的昵称.年龄.性别.积分等. ### 常 ...

  6. Redis基础篇-(入门、数据类型、通用命令、Jedis)

    windows系统环境 目录 Redis入门 问题现象: 罪魁祸首---关系型数据库 解决思路 Nosql 常见的Nosql数据库: 解决方案(电商场景): Redis简介 Redis的应用 Redi ...

  7. 带你掌握Redis数据类型:string和Hash

    摘要:Redis中有五大数据类型,分别是String.List.Set.Hash和Zset. 本文分享自华为云社区<Redis的string类型常用命令解析>,作者:灰小猿 . 先问大家一 ...

  8. Redis从精通到入门——数据类型Zset实现源码详解

    Redis数据类型之Zset详解 Zset简介 Zset常用操作 应用场景 Zset实现 源码阅读 Zset-ziplist实现 图解Zset-ziplist Zset-字典(dict) + 跳表(z ...

  9. Marco's Java【Redis入门(三) 之 Redis数据类型及用法】

    前言 在啃完上节的Redis的配置文件redis.conf这块 "硬石头" 之后,接下来,咱们继续啃Redis数据类型- Redis 相对于 Memcache.Tokyo Tyra ...

最新文章

  1. 【机器学习入门到精通系列】应用机器学习的建议(方差和偏差)
  2. 《算法设计》二、算法分析基础
  3. MATLAB中cif用于清除什么,cifti-matlab-master 能够对MRI数据进行功能成像 - 下载 - 搜珍网...
  4. SQL基础【十九、触发器】(不建议使用触发器的原因)
  5. 力扣(LeetCode)258. 各位相加
  6. php js date 格式化,javascript date格式化示例_javascript技巧
  7. php获取下载地址,php获取当前页面完整URL地址函数
  8. highcharts默认选中最后一个点数据
  9. redis 可视化工具_自荐一个有情怀的跨平台Redis可视化客户端工具——RedisViewer...
  10. FABRIC单机开发者模式启动
  11. Eclipse+JBoss+MySQL开发环境设置全攻略
  12. 网页设计中时尚​​的下拉菜单案例
  13. GO语言学习之路11
  14. Cocos2d-x属性变化动作
  15. 二叉树的层次遍历算法
  16. python编程一球从100米_Python求解一个球从100米高度自由落下的问题
  17. 语法长难句之从句——名词性从句
  18. 转: 学习开源项目的若干建议(infoq)
  19. word、wps学习笔记
  20. 理论详解:为什么 MySQL 采用B+树作为索引?

热门文章

  1. python后端教程_Python学习教程(技术干货):关于前后端分离开发入门
  2. oracle-00028,Oracle 10g錯誤:「ORA-00028:您的會話已被終止」
  3. python语音开发库-各种 Python 库/模块/工具
  4. linux 模拟打电话,Android 调用打电话和发短信功能
  5. class unity 定义类_【Unity学习笔记】C#基础-类(Classes)
  6. apt-get出错,由于出现了太多错误,处理过程被终止
  7. 怎么提前体验鸿蒙,鸿蒙OS手机版明天发布,开发者提前体验,上手操作毫无难度...
  8. python wlsxwriter_python xlsxwriter模块的使用
  9. hbase 预写日志_HDInsight HBase 加速写入现已正式发布
  10. java object 判断null_java判断object为null