个人作品展示网站/口碑营销的特征

个人作品展示网站,口碑营销的特征,a片做视频网站,合肥网站建设公司 推荐文章目录 表示形式命令HSET 和 HGET HEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSETNXHINCRBYHINCRBYFLOAT命令小结内部编码 表示形式 Redis 自身已经是键值对结构了 Redis 自身的键值对就是通过哈希的方式来组织的 把 key 这一层组织完成之后,到了 value 这一层&…

文章目录

  • 表示形式
  • 命令
    • HSET 和 HGET
  • HEXISTS
  • HDEL
  • HKEYS
  • HVALS
  • HGETALL
  • HMGET
  • HLEN
  • HSETNX
  • HINCRBY
  • HINCRBYFLOAT
  • 命令小结
  • 内部编码

表示形式

Redis 自身已经是键值对结构了
Redis 自身的键值对就是通过哈希的方式来组织的

key 这一层组织完成之后,到了 value 这一层,value 这一层也可以是哈希image.png

  • 哈希类型中的映射关系通常称为 field-value,用于区分 Redis 整体的键值对(key-value),注意这里的 value 是指 field 对应的值,不是 key 对应的值,注意 value 在不同上下文的作用

命令

HSET 和 HGET

设置/获取 hash 中指定的字段(field)的值(value


语法:

HSET key field value [field value...]HGET key field
  • HSET 的返回值是设置成功的键值对(field-value)的个数
  • 时间复杂度: O ( 1 ) O(1) O(1) image.png|263

HEXISTS

判断 hash 中是否有指定的字段


语法:

HEXISTS key field
  • 返回值:1 表示存在,0 表示不存在
  • 时间复杂度: O ( 1 ) O(1) O(1)
    image.png|374

HDEL

删除 hash 中指定的字段

  • del 删除的是 key
  • hdel 删除的是 field

语法:

HDEL key field [field...]
  • 返回值是本次删除的字段个数
  • 时间复杂度:删除一个元素为 O ( 1 ) O(1) O(1),删除 N N N 个位 O ( N ) O(N) O(N)(几十几百个就视为 1)image.png|276
  • HDEL 是删除 key 对应的 valuefield-value) 中的键值对 field
  • DEL 是直接删除 key 对应的 value(里面所有的键值对全删)

HKEYS

获取 hash 中的所有字段


语法:

HKEYS key
  • 这个操作,会先根据 key 找到对应的 hash O ( 1 ) O(1) O(1)),然后再遍历 hash O ( N ) O(N) O(N) N N Nhash 的元素个数)

谈到 O ( N ) O(N) O(N),有的时候, N N N 表示:

  1. Redis 整体 key 的个数
  2. 当前命令中 key 的个数 (因为我们一般不会弄太多 key,所以一般可以直接看做 O ( 1 ) O(1) O(1))
  3. 当前 key 对应的 value 里面的元素个数

HVALS

获取 hash 中的所有的值


语法:

HVALS key
  • 时间复杂度: O ( N ) O(N) O(N) N N N 是哈希的元素个数,如果哈希非常大,这个操作就可能导致 Redis 服务器被阻塞住)
    image.png|334

HGETALL

获取 hash 中的所有字段以及对应的值

  • 相当于结合了 HKEYSHVALS

语法:

HGETALL key
  • 时间复杂度: O ( N ) O(N) O(N) N N N 是哈希的元素个数,如果哈希非常大,这个操作就可能导致 Redis 服务器被阻塞住)image.png|332

这个操作,还是风险比较大。多数情况下,不需要查询所有的 field,可能只查其中的几个 key

HMGET

一次获取 hash 中多个字段的值


语法:

HMGET key field [field...]
  • 时间复杂度:删除一个元素为 O ( 1 ) O(1) O(1),删除 N N N 个位 O ( N ) O(N) O(N)(几十几百个就视为 1)
  • 返回值:字段对应的值或者 nil image.png
  • 上述 HKEYSHVALSHGETALL 都是存在一定风险的。hash 元素个数太多,执行的时间就会比较长,从而阻塞 Redis
    • 一条命令,就能完成所有的遍历操作
  • HSCAN 遍历 Redishash,“渐进式遍历
    • 敲一次命令,遍历一小部分
    • 再敲一次命令,再遍历一小部分
    • 连续执行多次,就可以完成整个遍历过程(化整为零

ConcurrentHashMap 线程安全的哈希表

HLEN

获取 hash 中的所有字段的个数


语法:

HLEN key
  • 时间复杂度: O ( 1 ) O(1) O(1)
  • 返回值:字段个数image.png

HSETNX

在字段不存在的情况下,设置 hash 中的字段和值


语法:

HSETNX key field value
  • 时间复杂度: O ( 1 ) O(1) O(1)
  • 返回值:1 表示成功,0 表示失败image.png|277

HINCRBY

hash 中字段对应的数字添加指定的值


语法:

HINCRBY key field increment
  • 时间复杂度: O ( 1 ) O(1) O(1)
  • 返回值:该字段变化后的值image.png

HINCRBYFLOAT

HINCRBY 的浮点数版本


语法:

HINCRBYFLOAT key field increment
  • 时间复杂度: O ( 1 ) O(1) O(1)
  • 返回值:该字段变化后的值image.png

命令小结

image.png

内部编码

哈希的内部编码有两种:

  1. ziplist:压缩列表
  2. hashtable:哈希表

压缩:

  • rar
  • zip
  • gzip
  • 7z

  • 这是一些具体的压缩算法。

压缩的本质,是针对数据进行重新编码。不同的数据,有不同的特点,结合这些特点,进行精妙的设计,重新编码之后,就能够缩小体积

比如,现在有字符串:abcccddddeeeee

  • 重新编码表示:1a2b3c4d5e
  • 重新编码后的结果就比原来的短了(粗糙)

ziplist 内部的数据结构也是精心设计的(目的是节省内存空间)

  • 表示一个普通的 hash 表,可能会浪费一定的空间(hash 首先是一个数组,数组上有些位置有元素,有些没有元素)
  • 付出的代价是进行读写元素,速度是比较慢的。如果元素个数少,慢的不明显,但如果元素多了,慢就会雪上加霜

如果:

  1. 哈希中的元素个数比较少,使用 ziplist 表示;元素较多,就用 hashtable 来表示
  2. 每个 value 的值,长度都比较短,使用 ziplist 表示;如果某个 value 的长度太长了,也会转换成 hashtable

image.png

  • 可以在 redis。conf 文件中,调整 hash-max-ziplist-entries 配置和 hash-max-ziplist-value 配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/71997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

行为模式---策略模式

概念 策略模式是一种行为设计摸是,它的核心思想是将一些列的算法封装成独立的对象,并使它们可以相互替换,通过上下文进行调用。 策略模式通过算法抽象为独立的策略类,客户端可以根据自身需求选择不同的策略类来完成任务、这种方…

【社区投稿】深入再谈智能指针、AsRef引用与Borrow借用

深入再谈智能指针、AsRef引用与Borrow借用 这是一个具有深度的技术主题。每次重温其理论知识&#xff0c;都会有新的领悟。大约 2 年前&#xff0c;我曾就这一技术方向撰写过另一篇短文《从类型转换视角&#xff0c;浅谈Deref<Target T>, AsRef<T>, Borrow<T&g…

外层元素旋转,其包括在内的子元素一并旋转(不改变旋转中心),单元测试

思路&#xff1a;外层旋转后坐标&#xff0c;元素旋转后坐标&#xff0c;计算偏移坐标 <template><div class"outbox"><label>角度: <input v-model.number"rotate" type"number" /></label><br><div c…

Oracle数据库存储结构--物理存储结构

数据库存储结构&#xff1a;分为物理存储结构和逻辑存储结构。 物理存储结构&#xff1a;操作系统层面如何组织和管理数据 逻辑存储结构&#xff1a;Oracle数据库内部数据组织和管理数据&#xff0c;数据库管理系统层面如何组织和管理数据 存储结构 在Oracle数据库的存储结构…

纺织服装制造行业现状 内检实验室系统在纺织服装制造行业的应用

在纺织服装制造行业&#xff0c;内检实验室LIMS系统&#xff08;实验室信息管理系统&#xff09;已成为提升检测效率、优化质量控制和满足行业合规性要求的关键工具。随着行业竞争的加剧和消费者对产品质量要求的提高&#xff0c;纺织服装制造企业需要更加高效、准确的检测流程…

3分钟复现 Manus 超强开源项目 OpenManus

文章目录 前言什么是 OpenManus构建方式环境准备克隆代码仓库安装依赖配置 LLM API运行 OpenManus 效果演示总结个人简介 前言 近期人工智能领域迎来了一位备受瞩目的新星——Manus。Manus 能够独立执行复杂的现实任务&#xff0c;无需人工干预。由于限制原因大部分人无法体验…

【大模型统一集成项目】如何封装多个大模型 API 调用

&#x1f31f; 在这系列文章中&#xff0c;我们将一起探索如何搭建一个支持大模型集成项目 NexLM 的开发过程&#xff0c;从 架构设计 到 代码实战&#xff0c;逐步搭建一个支持 多种大模型&#xff08;GPT-4、DeepSeek 等&#xff09; 的 一站式大模型集成与管理平台&#xff…

AI4CODE】3 Trae 锤一个贪吃蛇的小游戏

【AI4CODE】目录 【AI4CODE】1 Trae CN 锥安装配置与迁移 【AI4CODE】2 Trae 锤一个 To-Do-List 这次还是采用 HTML/CSS/JAVASCRIPT 技术栈 Trae 锤一个贪吃蛇的小游戏。 1 环境准备 创建一个 Snake 的子文件夹&#xff0c;清除以前的会话记录。 2 开始构建 2.1 输入会…

从零开发Chrome广告拦截插件:开发、打包到发布全攻略

从零开发Chrome广告拦截插件&#xff1a;开发、打包到发布全攻略 想打造一个属于自己的Chrome插件&#xff0c;既能拦截烦人的广告&#xff0c;又能优雅地发布到Chrome Web Store&#xff1f;别担心&#xff0c;这篇教程将带你从零开始&#xff0c;动手开发一个功能强大且美观…

基于腾讯云高性能HAI-CPU的跨境电商客服助手全链路解析

跨境电商的背景以及痛点 根据Statista数据&#xff0c;2025年全球跨境电商市场规模预计达6.57万亿美元&#xff0c;年增长率保持在12.5% 。随着平台规则趋严&#xff08;如亚马逊封店潮&#xff09;&#xff0c;更多卖家选择自建独立站&#xff0c;2024年独立站占比已达35%。A…

git安装,配置SSH公钥(查看版本、安装路径,更新版本)git常用指令

目录 一、git下载安装 1、下载git 2、安装Git‌&#xff1a; 二、配置SSH公钥 三、查看安装路径、查看版本、更新版本 四、git常用指令 1、仓库初始化与管理 2、配置 3、工作区与暂存区管理 4、提交 5、分支管理 6、远程仓库管理 7、版本控制 8、其他高级操作 一…

【鸿蒙开发】OpenHarmony调测工具hdc使用教程(设备开发者)

00. 目录 文章目录 00. 目录01. OpenHarmony概述02. hdc简介03. hdc获取04. option相关的命令05. 查询设备列表的命令06. 服务进程相关命令07. 网络相关的命令08. 文件相关的命令09. 应用相关的命令10. 调试相关的命令11. 常见问题12. 附录 01. OpenHarmony概述 OpenHarmony是…

手写简易Tomcat核心实现:深入理解Servlet容器原理

目录 一、Tomcat概况 1. tomcat全局图 2.项目结构概览 二、实现步骤详解 2.1 基础工具包&#xff08;com.qcby.util&#xff09; 2.1.1 ResponseUtil&#xff1a;HTTP响应生成工具 2.1.2 SearchClassUtil&#xff1a;类扫描工具 2.1.3 WebServlet&#xff1a;自定义注解…

【Java开发指南 | 第三十四篇】IDEA没有Java Enterprise——解决方法

读者可订阅专栏&#xff1a;Java开发指南 |【CSDN秋说】 文章目录 1、新建Java项目2、单击项目名&#xff0c;并连续按两次shift键3、在搜索栏搜索"添加框架支持"4、勾选Web应用程序5、最终界面6、添加Tomcat 1、新建Java项目 2、单击项目名&#xff0c;并连续按两次…

在MATLAB中实现PID控制仿真

在MATLAB中实现PID控制仿真可以通过代码编程或Simulink图形化建模两种方式完成。以下是两种方法的详细操作步骤和示例&#xff1a; 方法1&#xff1a;使用MATLAB脚本编程&#xff08;基于控制系统工具箱&#xff09; 步骤1&#xff1a;定义被控对象的数学模型 假设被控对象是…

蓝桥杯历年真题题解

1.轨道炮&#xff08;数学模拟&#xff09; #include <iostream> #include <map> using namespace std; const int N1010; int x[N],y[N],v[N]; char d[N]; int main() {int n;int ans-100;cin>>n;for(int i1;i<n;i)cin>>x[i]>>y[i]>>v…

Pytorch的一小步,昇腾芯片的一大步

Pytorch的一小步&#xff0c;昇腾芯片的一大步 相信在AI圈的人多多少少都看到了最近的信息&#xff1a;PyTorch最新2.1版本宣布支持华为昇腾芯片&#xff01; 1、 发生了什么事儿&#xff1f; 在2023年10月4日PyTorch 2.1版本的发布博客上&#xff0c;PyTorch介绍的beta版本…

阿里千问大模型(Qwen2.5-VL-7B-Instruct)部署

参考链接 知乎帖子 B站视频 huggingface 镜像网站&#xff08;不太全&#xff0c;比如 Qwen/Qwen2.5-VL-7B-Instruct就没有&#xff09; huggingface 5种下载方式汇总 通过huggingface-cli下载模型 不一样的部分是预训练权重的下载和demo 首先安装huggingface_hub pip insta…

Jenkins在Windows上的使用(二):自动拉取、打包、部署

&#xff08;一&#xff09;Jenkins全局配置 访问部署好的Jenkins服务器网址localhost:8080&#xff0c;完成默认插件的安装后&#xff0c;接下来将使用SSH登录远程主机以实现自动化部署。 1. 配置插件 选择dashboard->Manage Jenkins->plugins 安装下面两个插件  …

群晖DS 223 Docker:开启私有云

群晖DS 223 Docker&#xff1a;开启私有云的无限可能 引言 在数据存储与管理的不断演进中&#xff0c;群晖 DS 223 凭借其出色的性能和丰富的功能&#xff0c;成为众多用户搭建私有云的热门选择。而当它与 Docker 技术相遇&#xff0c;犹如为数据管理的舞台添上了绚丽多彩的灯…