序言

Hash数据结构累似c#中的dictionary,大家对数组应该比较了解,数组是通过索引快速定位到指定元素的,无论是访问数组的第一个元素还是最后一个元素,所耗费的时间都是一样的,但是数组中的索引却没有实际意义,他只是一个位置而已。而我们在查找某个元素时,一般都会使用有意义的字段来做索引,这就产生啦dictionary。其实dictionary的实现,就是让key跟下标索引有一定的关系,所实现的,让他的查找算法复杂度变为常数O(1)。

扯完上面的蛋,我来说下今天要说redis中的Hash命令,如果你不懂redis,就从第一篇看跟着来敲一边,别懒,懒啦别人装逼你就装不了啦,哈哈。

redis中hash对单个key/value操作的命令演示

redis中hash的添加命令hset,如果key不存在,创建key,存在,则覆盖原有值

redis 127.0.0.1:6379>hset myhash name Jim  ----给key为myset的键值设置键为name值为Jim

redis中hash的查看命令hget

redis 127.0.0.1:6379>hget myhash name   ----输出: "Jim",获取key为myset,键为name的value

redis 127.0.0.1:6379>hset myhash name zlh   ----覆盖原有值,值改为zlh替换Jim

redis 127.0.0.1:6379>hget myhash name   ---输出:"zlh"

redis中hash的获取key包含的field数量的命令hlen

redis 127.0.0.1:6379>hset myhash age 31 --- 设置key为myset键为age的value=31

redis 127.0.0.1:6379>hlen myhash   ---输出为2,key为myset的field数量为2

redis中判断指定key中指定field是否存在的命令hexists,存在返回1,不存在返回0

redis 127.0.0.1:6379>hexists myhash name   ---返回1,说明存在

redis 127.0.0.1:6379>hexists myhash name1  ---返回0,说明不存在

redis中hash删除命令hdel,删除一个或多个指定的字段

redis 127.0.0.1:6379>hset myhash sex nan   ----添加数据

redis 127.0.0.1:6379>hset myhash issingle yes  ----添加数据

redis 127.0.0.1:6379>hset myhash hobby sports  ----添加数据

redis 127.0.0.1:6379>hdel myhash hobby  ----删除单个数据,filed为hobby的数据

redis 127.0.0.1:6379>hdel myhash issingle sex   ---删除多个数据,filed为issingle和sex的两条数据

redis中hash如果key或field不存在插入有效,否则不采取操作的命令hsetnx

redis 127.0.0.1:6379>hsetnx myhash sex nan   ---设置myhash,field为sex的value为nan,成功返回1,因为原来不存在sex这个字段

redis 127.0.0.1:6379>hsetnx myhash sex nv   ---设置myhash,field为sex的value为nv,不成功返回0,因为原来存在sex这个字段并且有值

redis 127.0.0.1:6379>hget myhash sex   --输出"nan"

redis中hash中的value为数值时操作增减的命令hincrby

redis 127.0.0.1:6379>del myhash  ---删除该键

redis 127.0.0.1:6379>hset myhash age 31  ---设置key为myhash的键为age值为31

redis 127.0.0.1:6379>hincrby myhash age 10   ---给key为myhash,键为age的值加10,输出结果为41

redis 127.0.0.1:6379>hincrby myhash age -10   ---给key为myhash,键为age的值减去10,输出结果为31

redis中hash批量操作key/value的命令演示

批量添加key/value的命令hmset

redis 127.0.0.1:6379>del myhash  --删除该键

redis 127.0.0.1:6379>hmset myhash name zlh age 31 issingle no ----给key为myhash的hash添加name=zlh,age=31,issingle=no的多个键值

批量获取key/value的命令hmget

redis 127.0.0.1:6379>hmget myhash name age issingle   ----输出结果为:zlh 31 no

根据myhash键获取所有的字段及value的命令hgetall

redis 127.0.0.1:6379>hgetall myhash   ----输出结果为:name age issingle zlh 31 no

获取所有的field的命令hkeys

redis 127.0.0.1:6379>hkeys myhash   ---输出结果为:name age issingle

获取所有字段的值的命令hvals

redis 127.0.0.1:6379>hvals myhash  ----输出结果为:zlh 31 no

Redis操作Hash相关推荐

  1. 系统性详解Redis操作Hash类型数据(带源码分析及测试结果)

    1 缘起 系统讲解Redis的Hash类型CURD, 帮助学习者系统且准确学习Hash数据操作, 逐步养成测试的好习惯, 本文较长,Hash的操作比较多,请耐心看, 既可以集中时间看,亦可以碎片时间学 ...

  2. Redis操作hash数据

    文章目录 一.增加和修改「hset/hmset」 二.获取「hkeys/hget/hmget/hvals」 三.删除「del/hdel」 相关文章: Redis介绍和安装配置 Redis数据结构及操作 ...

  3. Redis操作Hash相关API

    //测试HASH相关 @Test public void testHash(){//hsetjedis.hset("maps","name","zha ...

  4. Redis操作hash类型

    特点: value 是一个map结构 存在key value key 无序的 1.内存模型 2.常用命令 命令 说明 hset 设置一个key/value对 hget 获得一个key对应的value ...

  5. 分布式内存数据库---Redis操作String、list、set、hash和Zset

    Redis是一个Key-Value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类 ...

  6. redis的hash操作在集中式session中的应用

    在集群部署时,为了高可用性的目的,往往把session进行共享,共享分为两种:session复制和集中式管理. redis在session集中式管理中可以起到比较大的作用. 制约session集中式共 ...

  7. Spring Boot + Redis 操作多种实现

    欢迎关注方志朋的博客,回复"666"获面试宝典 一.Jedis,Redisson,Lettuce三者的区别 共同点:都提供了基于Redis操作的Java API,只是封装程度,具体 ...

  8. Redis之Hash数据结构

    0.前言 redis是KV型的内存数据库, 数据库存储的核心就是Hash表, 我们执行select命令选择一个存储的db之后, 所有的操作都是以hash表为基础的, 下面会分析下redis的hash数 ...

  9. 解析Redis操作五大数据类型常用命令

    摘要:分享经常用到一些命令和使用场景总结,以及对Redis中五大数据类型如何使用cmd命令行的形式进行操作的方法. 本文分享自华为云社区<Redis操作五大数据类型常用命令解析>,作者:灰 ...

最新文章

  1. 为什么执行自己的程序要在前面加./
  2. application.yml如何显示成小叶子图标
  3. 最全 | Redis可视化工具横向评测
  4. Show Attend and Tell的词表
  5. Tomcat启动时项目重复加载,导致资源初始化两次的问题
  6. go run main.go 参数_介绍一款Go项目热编译工具gowatch
  7. 怎么把 html做成雪花特效,CSS3 HTML5下雪特效 雪花飘飘
  8. 什么是js面向对象??
  9. matlab一个figure画多个子图,和多个figure画多个图。
  10. 2017大学网考计算机b,(热)2017年4月网考 大学英语b网考 电大英语网考 计算机应用.doc...
  11. python:类基础
  12. 基于aspect的情感分析综述 论文翻译笔记 A Survey on Aspect-Based Sentiment Analysis: Tasks, Methods, and Challenges
  13. 关于删除/卸载win10自带IE 11浏览器后恢复问题
  14. ffmpeg学习 pcm文件转wav文件
  15. 雷达感应智能窗帘,雷达感应模组方案,家居智能化交互体验
  16. 跨境电商物流模式全面解析 性价比高的物流怎么选
  17. linux中的 inode 详解
  18. win10 uwp 获得元素绝对坐标
  19. latex中 号什么含义?
  20. 什么是雪崩什么是击穿?

热门文章

  1. 全球智慧城市大会 | 数字冰雹受邀出席并作主题演讲
  2. html向上弹出效果,JQ特效之:页面向上滚动时弹出模块
  3. SpringBoot内置Tomcat启动不了的原因
  4. 登录Linux时/etc/profile、~/.bash_profile等几个文件的执行过程
  5. 便携式明渠流量计的使用特点
  6. scoped 不生效_解决vue scoped scss 无效的问题
  7. JS中的DOM操作属性、DOM创建、DOM增加、DOM修改、DOM删除以及DOM获取非行间样式
  8. 【模拟】阿里郎(jzoj 2012)
  9. Keil的.map文件
  10. window caps 转换成 ctrl 按键映射