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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Werkzeug_vuze怎么用

    Werkzeug_vuze怎么用原文链接:http://werkzeug.pocoo.org/docs/tutorial/欢迎来到Werkzeug教程,这里我们将会创建一个仿制TinyURL的应用,将URLs存储到一个redis实例。为了这个应用,我们将会使用的库包括,用于模板的Jinja2、用于数据库层的redis和用于WSGI层的Werkzeug。你可以使用pip安装需要的库:[plai

  • Kali Linux三种网络攻击方法总结(DDoS、CC和ARP欺骗)

    Kali Linux三种网络攻击方法总结(DDoS、CC和ARP欺骗)本文章使用的是KaliLinux的2020-4-installer-amd64版本KaliLinux的安装过程本文章不做过多说明,请自行百度一、DDos攻击首先,打开一个命令行输入以下命令:gitclonehttps://github.com/Ha3MrX/DDos-Attack提示如图所示这样,用于DDos的数据包就已经下载到了你的Kali上下面,进入你所下载的DDos文件夹,输入命令(注意大小写):cdDDos-Attack然后设置ddos-attack.py设置

  • DNS解析过程详解「建议收藏」

    DNS解析过程详解「建议收藏」转载原文地址:http://blog.chinaunix.net/uid-28216282-id-3757849.html先说一下DNS的几个基本概念:一.根域就是所谓的“.”,其实我们的网

  • netty详解与源码分析

    netty详解与源码分析

  • 越权漏洞(IDOR)测试技巧「建议收藏」

    越权漏洞(IDOR)测试技巧「建议收藏」文章目录一、IDOR介绍二、常见的测试技巧1.改变HTTP请求方法2.路径穿越绕过3.改变Content-type(内容类型)4.用数字ID替换非数字5.大小写替换绕过6.用通配符替换ID7.给Web应用提供一个请求ID,哪怕它没作要求8.HTTP参数污染,为同一参数提供多个值。9.更改文件类型。添加不同的文件扩展名(例如.json,.xml,.config)10.JSON参数污染11.在请求体用数组包装参数值12.尝试不同版本的API三、总结一、IDOR介绍IDOR,InsecureDire.

  • springboot mybatis缓存_secure boot未正确配置

    springboot mybatis缓存_secure boot未正确配置什么是缓存?简单来讲,缓存就是存储在缓冲区里的内容,或者可以理解为存在内存中的内容。用户可以将经常查询的内容放到缓存中,再次使用时直接从缓存中取值,而不需要再查询数据库。这样做的优点是响应迅速,减少了系统资源(网络资源、CPU资源等)开销;缺点是需要占用内存资源,服务器一旦关机,缓存就会丢失,重启后需要重新将写一遍数据到内存。Mybatis的缓存Mybatis的缓存分为一级缓存和二级缓存。一级缓存是默认开启的,二级缓存需要手动开启。一级缓存是SqlSession级别的缓存,作用域是一个SqlSess

发表回复

您的电子邮箱地址不会被公开。

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