`

Redis开发与运维读书笔记之五

阅读更多
第2章 API的理解和使用 第3部分

哈希
Hash类型指键值本身又是一个键值对结构,如value={{field1,value1},...{fieldN,valueN}}
Hash值的映射关系叫field-value,这里的value是field对应的值,不是键对应的值

Hash命令
设置值
hset key field value

也可以使用hsetnx用于添加,和set与setnx的关系一样,但作用域为field

获取值
hget key field


删除值
hdel key field [field...]


计算field个数
hlen key


批量设置或获取field-value
hmget key field [field ...]
hmset key field value [field value ...]


判断field是否存在
hexists key field


获取所有field
hkeys key


获取所有value
hvals key


获取所有field-value
hgetall key

注意:当hash元素较多时,hgetall可能会造成Redis阻塞,建议要获取多个,可以使用hmget,如果一定要获取所有field-value,可以使用hscan命令,采用渐进式遍历Hash类型

自增指定数字/浮点数字
hincrby key field
hincrbyfload key field


计算value字符串长度
hstrlen key field


内部编码
  • ziplist:压缩列表。当hash类型元素个数小于hash-max-ziplist-entries配置(默认512个)、同时所有值都小于hash-max-ziplist_value配置(默认64字节),Redis使用ziplist作为内部实现,更加紧凑,节省内存
  • hashtable:哈希表。当无法满足ziplist要求时,使用hashtable,因为此时ziplist读写效率会下降,而使用hashtable的读写时间复杂度为O(n)


使用场景
Hash类型和关系型数据库的不同之处:
  • Hash是稀疏的,关系型数据库是完全结构化的
  • 关系型数据库可以做复杂查询,Redis不适合模拟关系型复杂查询,维护成本太高

分享到:
评论

相关推荐

    《redis运维与开发》读书笔记

    《redis运维与开发》读书笔记 (1)Redis-cli • -h 服务端ip • -p 端口 • -r (repeat)将命令执行多次。redis-cli -r 3 ping • -i (interval)每个几秒执行几次。redis-cli -r 5 -i 1 ping • -a (auth)...

    redis笔记xmind

    是根据《redis开发与运维》一书和其他redis书摘抄的记录综合的笔记

    redis性能调优参考.pdf

    redis性能优化参考,主要是自己看redis开发与运维时做的读书笔记....拿出来分享...希望各位多多指教.

    前后端分离部署与运维总结笔记

    笔记是本人工作期间总结的所有部署与运维的方法,我相信能帮助大家的! 其中重点讲解了以下的步骤: 一、PXC集群安装 二、MySQL集群安装 三、RedisCluster集群安装 四、后端项目上线方法

    Linux云计算运维笔记

    Ansible自动化运维平台 CI和CD代码管理平台 Docker容器实战部署 Kubernetes云计算实战 Linux常用服务器部署实战 Linux系统管理宝典 Linux系统资源限制与加固 MySQL数据库实战 Redis数据库实战 shell脚本高手速成 Web...

    redis入门学习笔记

    redis入门学习笔记化运维,非常不错,适合新手的,建议下载

    马哥2016运维笔记

    笔记包括nginx Redis ansible zabbix mysql keepalived 等。

    Linux运维工程师私人笔记,全部MD格式

    Ansible自动化运维平台 CI和CD代码管理平台 Docker容器实战部署 Kubernetes云计算实战 Linux常用服务器部署实战 Linux系统管理宝典 Linux系统资源限制与加固 MySQL数据库实战 Redis数据库 shell脚本高手速成 Web大...

    cent7.3-redis集群5.0.0搭建-详细笔记文档

    cent7.3-redis集群5.0.0搭建-详细笔记文档

    linux中高级运维笔记(二)

    运维和管理企业Linux 服务器,除了要熟练Linux 系统本身的维护和管理之外,最重要 的是熟练甚至精通基于Linux 系统安装配置各种应用软件,对软件进行调优以及软件在使用 中遇到各类问题,能够快速定位并解决问题。 ...

    docker安装redis4.0.10-单点持久化详细笔记

    docker安装redis4.0.10-单点持久化详细笔记

    97 Things Every Programmer Should Know 等 24 本书

    Redis开发运维实践指南.epub Scala 初学指南.epub Spring Batch 参考文档中文版.epub Stackoverflow about Python 中文版.epub Swift设计模式 (iOS).epub txt.txt Webpack 中文指南.epub 使用Spring Cloud与Docker...

    百度地图开发java源码-MD-Notes:计组、操作系统、数据结构、网络IO、Redis、MySQL、JVM等笔记

    百度地图开发java源码 MD-Notes:后端笔记总结 关于 MD-Notes: 业余时间学习技术的同时,做一些记录和总结并乐于分享。 日常主要接触 Web 前后端开发、Linux 运维等,有 Java / Python 后端经验,有大数据开发 ...

    小白图书笔记本管理Java系统Vue + Spring Boot 项目实战

    后台管理模块的常见功能与布局(内容管理、用户\权限管理、运维监控) 用户身份验证、授权、会话管理与信息加密存储 Shiro 框架的使用 实现不同粒度的访问控制(动态菜单、功能控制、数据控制)1.前端技术栈 1.Vue....

    Learning-Notes:学习笔记

    学习笔记 后端开发 Java maven netty Redis Spring Spring4新特性 Spring使用注意事项 Spring验证Validation SpringBoot 开发知识 相关技术名词 开发技术框架工具整理 架构知识 开发过程注意事项整理 常用开发技巧 ...

    notes:我的笔记-PWA笔记本

    开发运维 地理信息系统 集成开发环境 3D 资源 概念 统一 虚拟现实 云 云 蔚蓝 Kubernetes 语言能力 Java s VueJS 打字稿 React p Cpp C# F# 去 斯威夫特/ iOS Python 降价促销 SQL Kotlin 锈 平台...

    OpenStack_Learning:OpenStack学习资源

    自动化运维 ansible 博客 OpenStack博客资源 sammyliu Ustack官方博客 OpenStack Hack养成指南(from Ustack) bingotree Kong令贤 虚拟机创建的50个步骤和100个知识点 中科院-刘冬 Neutron、Ceilometer运行机制 臭蛋 ...

    leetcode题库-blog:博客

    笔记 Kubernetes 使用 Kubernetes 开发 Kubernetes 源码分析 Docker Docker 原理相关 Bash Linux Linux gawk 由于 gawk 语言太过强大,想了想还是把它单独拎出来说。 关于 gawk 与 awk 的区别:gawk(GNU Awk) 是 ...

    Docker企业应用实战

    其实利用率高不算什么,它最大的优势是能给让运维人员或者开发人员快速部署和交付资源,大大提高了工作效率。 本课程以通俗易懂的方式讲解Docker容器技术,最适合初学者的教程,让你少走弯路! 快速入门掌握Docker...

    AgeFades-Note:记录AgeFades学习成长笔记

    Java重点: SpringBoot 整合各大流行框架、项目的架构实战经验开阔视野、对各项 Java圈子技术的学习与记录。前端重点: 对当下流行的 Vue + React 的学习记录目的: 为了更好了解前端同事行为,完成工作任务需求。运维...

Global site tag (gtag.js) - Google Analytics