redis数据结构详解之Hash(四)

redis数据结构详解之Hash(四)

序言

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109108.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python实现求和,求平均值——函数

    python实现求和,求平均值——函数#求三个数的和defsum(a,b,c):returna+b+cx=int(input("请输入第一个数:"))y=int(input("请输入第二个数:&

    2022年7月5日
    22
  • IIS 发生意外错误 0x8ffe2740「建议收藏」

    IIS 发生意外错误 0x8ffe2740「建议收藏」IIS发生意外错误0x8ffe2740 1、IIS发生意外错误0x8ffe2740原因如果系统中存在端口冲突就有可能发生本情况.IIS默认使用80端口进行HTTP通信.如果除IIS外的应用程序正在运行并且正在相同的IP地址上使用80端口,在您试图使用…

    2022年7月14日
    12
  • pycharm2021.11.3永久激活_最新在线免费激活

    (pycharm2021.11.3永久激活)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月28日
    55
  • Ubuntu18.04 安装 Idea 2018.2 Ultimate[通俗易懂]

    Ubuntu18.04 安装 Idea 2018.2 Ultimate[通俗易懂]Ubuntu18.04Idea

    2022年6月22日
    99
  • 利用IAR Timeline工具测试delay函数执行时间

    利用IAR Timeline工具测试delay函数执行时间”要把大象放冰箱,总共分几步”,呵呵,写到本篇博客的时候突然想起小品宋丹丹说的那句经典台词了(俺们东北人儿对本山大叔的作品真是滚瓜烂熟了,搞的舍友还时不时跟我学上一学),哈哈,所以就索性给题目也加上了“几步”的说法,把复杂的事情简单化,也起到吸引人眼球的作用(当然本篇也是有实料的,进来的不会让你失望的,呵呵)。咳咳,至于到底是几步,是不是传说中的“三步”来,哈哈,那还得下面分解。。。  

    2022年5月21日
    39
  • 麦克风声源定位原理_一种利用麦克风阵列进行声源定位的方法与流程

    麦克风声源定位原理_一种利用麦克风阵列进行声源定位的方法与流程本发明涉及计算机信号处理领域,具体涉及一种用麦克风阵列时延估计定位声源的方法。背景技术:20世纪80年代以来,麦克风阵列信号处理技术得到迅猛的发展,并在雷达、声纳及通信中得到广泛的应用。这种阵列信号处理的思想后来应用到语音信号处理中。在国际上将麦克风阵列系统用于语音信号处理的研究源于1970年。1976年,Gabfid将雷达和声纳中的自适应波束形成技术直接应用于简单的声音获取问题。1985年,美国…

    2022年9月22日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号