Redis实战(4)数据类型二Hashes

本文详细介绍了 Redis 中的 Hash 数据结构及其应用场景。Hash 是一种 string 类型 field 和 value 的映射表,适用于存储对象,相较于单个 string 存储方式,Hash 更节省内存并方便存取整个对象。文章还列举了 Hash 的基本命令,如 hset、hget 等。

Redis hash 是一个 string 类型的 field 和 value 的映射表.它的添加、 删除操作都是 O(1)(平均)。
hash 特别适合用于存储对象。相较于将对象的每个字段存成单个 string 类型。
将一个对象存储在 hash 类型中会占用更少的内存,并且可以更方便的存取整个对象。省内存的原因是新
建一个 hash 对象时开始是用 zipmap(又称为 small hash)来存储的。

这个 zipmap 其实并不是 hash table,但是 zipmap 相比正常的 hash 实现可以节省不少 hash 本身需要的一些元数据存储开销。尽管 zipmap 的添加,删除,查找都是 O(n),但是由于一般对象的 field 数量都不太多。所以使用 zipmap 也是很快的,也就是说添加删除平均还是 O(1)。如果 field 或者 value
的大小超出一定限制后,Redis 会在内部自动将 zipmap 替换成正常的 hash 实现. 

这个限制可以在配置文件中指定

1
2
hash -max-zipmap-entries 64  #配置字段最多 64 个
hash -max-zipmap-value 512  #配置 value 最大为 512 字节

下面说一下Hash的基本命令:

hset:

设置 hash field 为指定值,如果 key 不存在,则先创建。
165107311.png

hsetnx:

设置 hash field 为指定值,如果 key 不存在,则先创建。如果 field 已经存在,返回 0,nx 是not exist 的意思。
165240566.png

第一次执行是成功的,但第二次执行相同的命令失败,原因是 field 已经存在了。

hmset:

同时设置 hash 的多个 field。
165743138.png

hget:

获取指定的 hash field。
hmget:

获取全部指定的 hash filed。
170415301.png

不存在的field,会返回nil

hincrby:

指定的 hash filed 加上给定值
172633893.png

hexists:

测试指定 field 是否存在。
172910693.png

通过上例可以说明 field2 存在,但 field9 是不存在的。
hlen:

返回指定 hash 的 field 数量。
173008402.png

hdel:

删除指定hash的field

173306474.png

hkeys:

返回 hash 的所有 field。
173410643.png

hvals:

返回 hash 的所有 value。
174300231.png

hgetall:

获取某个 hash 中全部的 filed 及 value。
174358645.png


可见,一下子将 myhash 中所有的 field 及对应的 value 都取出来了。



















本文转自shayang8851CTO博客,原文链接:http://blog.51cto.com/janephp/1337661,如需转载请自行联系原作者

### 中职学校网络安全理论课程大纲和教学内容 #### 2025年中职学校网络安全理论课程概述 随着信息技术的发展网络安全已成为信息化社会的重要组成部分。为了适应这一需求,中职学校的网络安全理论课程旨在培养学生具备基本的网络安全意识和技术能力,使学生能够在未来的职业生涯中应对各种网络威胁。 #### 教学目标 该课程的目标是让学生理解网络安全的基本概念、原理和技术手段,掌握常见的安全防护措施,并能应用这些知识解决实际问题。具体来说,学生应达到以下几点: - 掌握计算机网络基础架构及其工作原理; - 理解信息安全管理体系框架及其实现方法; - 学习密码学基础知识以及加密算法的应用场景; - 能够识别常见攻击方式并采取有效防御策略; #### 主要章节安排 ##### 第一章 计算机网络与互联网协议 介绍计算机网络的基础结构和服务模型,重点讲解TCP/IP五层体系结构中的各层次功能特点,特别是传输控制协议(TCP)和用户数据报协议(UDP)[^1]。 ##### 第二章 信息系统安全保障概论 探讨信息系统的脆弱性和风险评估机制,阐述如何通过物理隔离、访问控制等措施来保障系统安全性。 ##### 第三章 密码学入门 讲述对称密钥体制和非对称密钥体制的区别与发展历程,分析公钥基础设施(PKI)的工作流程及其重要性。 ##### 第四章 防火墙技术与入侵检测系统(IDS) 解释防火墙的作用原理及其分类形式(包过滤型、代理服务器型),讨论IDS的功能特性及部署建议。 ##### 第五章 Web应用程序安全 针对Web环境下的特殊挑战展开论述,如SQL注入漏洞利用、跨站脚本(XSS)攻击防范等内容。 ##### 实践环节设置 除了上述理论部分外,在每学期还设有专门实践课时用于模拟真实环境中可能遇到的安全事件处理过程,增强学生的动手操作能力和应急响应水平。 ```python # Python代码示例:简单的MD5哈希函数实现 import hashlib def md5_hash(text): hasher = hashlib.md5() hasher.update(text.encode('utf-8')) return hasher.hexdigest() print(md5_hash("example")) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值