redis数据结构hash的基本指令

redis数据结构hash的基本指令

hash命令

因为在redis的哈希数据结构中,是存在两个key的,所以我们把哈希value里的key称为field。

在这里插入图片描述

hset,hget,hexist,hdel

hset:这个里面设置的value就只能设置字符串类型了,返回值表示成功插入几个值。

hset key field1 value1 [fieldN valueN....]
在这里插入图片描述

hget:如果查找的key存在,则再次进行哈希查询field是否存在,如果存在则返回对应的value,如果不存在则返回nil,时间复杂度为O(1)。

hget key field 
在这里插入图片描述

hexists:判定hash中是否存在对应的字段,如果存在返回1,不存在返回0。

hexist key field 
在这里插入图片描述

hdel:del删除的是key,而hdel删除的是field,返回值返回的是删除的字段个数,如果删除一个不存在的值,则返回0。

hdel key field [fieldN....]
在这里插入图片描述

hkeys和hvals

hkeys:先根据key找到对应的哈希,再遍历哈希,就可以获取到哈希里所有的field。

hkeys key 
在这里插入图片描述

hvals:和hkeys类似,但这个指令是获取到哈希中所有的value。

hvals key 
在这里插入图片描述

hgetall和hmget

hgetall:可以获取到所有的key和value。

hgetall key 
在这里插入图片描述

hmget:hgetall的风险还是比较大的,如果我们只想查询其中几个命令,可以使用hmget,可以一次查询多个field。

hmget key field1[field2 field3 ....]
在这里插入图片描述


hscan也可以遍历redis里的数据,但它属于渐进式遍历,敲一次命令,遍历一小部分,就可以保证时间可控,不会阻塞服务器。

hlen,hsetnx,hincrby,hincrbyfloat

hlen:可以获取此key对应的哈希value里对应的元素个数,时间复杂度为O(1)。

hlen key 


hsetnx:当field不存在的时候,可以设置成功,如果field存在,则设置失败,当设置成功返回1,设置失败返回0。

hsetnx key field value 
在这里插入图片描述


hincrby:哈希这里的value也可以当作数字来处理,这个可以用于加减整数,返回值为加完之后的数。

hincrby key field 整数 
在这里插入图片描述


hincrbyfloat:和hincrby很类似,但主要是用于加减小数,返回值为加完之后的数。

hincrbyfloat key field 小数 
在这里插入图片描述

编码方式

哈希内部编码有两种,一种是ziplist(压缩列表),另外一种是hashtable(哈希表)的方式,当哈希列表中的元素较少,小于hash-max-ziplist-entries(默认为512个),并且其中的元素值均小于hash-max-ziplist-value(默认为64字节),就会使用ziplist编码,ziplist使用更加紧凑的结构连续存储元素,所以在节省内存方面比较优秀。当哈希类型无法满足ziplist条件时,redis就会使用更为复杂的hashtable进行存储。

在这里插入图片描述

应用

  • 关系型数据库的稀疏性:在MySQL中存储数据,如果一个属性是不存在的,那么就需要用null标识,而在redis中,如果一个属性不存在,我们可以不用特地标识出来,比如说用户1可以有名字,年龄和城市三种属性,而用户2可以有名字,性别,学校三种属性,不需要完全一样,这样的稀疏性可以减少空间的消耗。

可以用于存储一些类似于关系型数据库的内容,比如说有一个用户的id,对应的value哈希就可以存储名字,年龄,城市等和此用户有关的信息。如果想使用字符串类型存储也是可以的,但这需要用到json格式。

在这里插入图片描述

Read more

cpolar远程辅助Open-Lovable实现随时随地克隆网页超实用

cpolar远程辅助Open-Lovable实现随时随地克隆网页超实用

Open-Lovable 是一款面向前端开发者的开源工具,核心功能是将任意网页克隆为可编辑的 React 应用,还支持多类 AI 模型辅助生成代码,适配新手学习、中小企业原型开发等场景。它的优点很贴合实际需求:拆分代码组件清晰,保留完整 CSS 样式,能大幅减少手动搭建页面框架的时间,比如新手学习电商网站布局时,不用再逐行拆解复杂的源代码,直接克隆后就能看清 header、footer 等组件的逻辑,中小企业做产品原型时,克隆同类网页后稍作修改就能快速出效果。 使用这款工具时也有一些实用的小提醒💡:克隆的网页仅能还原静态布局和样式,像登录态、动态交互这类内容无法完整复刻,而且使用前需要准备好 E2B、Firecrawl 等平台的 API 密钥,密钥保管要注意隐私,避免外泄造成不必要的损失。 不过 Open-Lovable 默认只能在本地局域网内使用,这会带来不少不便:比如开发者在家调试的克隆项目,想让公司的设计师远程查看效果,只能通过传文件、远程协助的方式,不仅耗时,还可能出现版本不一致的问题;要是出差在外需要修改克隆的代码,没法直接访问本地的工具,只能等回到电脑前操作,耽误工作

By Ne0inhk
ollama 模型管理、删除模型 、open-webui 开启大模型交互

ollama 模型管理、删除模型 、open-webui 开启大模型交互

文章目录 * ollama 基本信息 * ollama 运行模型 * ollama 模型管理 * 🔧 **方法一:使用命令行删除单个模型** * ⚙️ **方法二:批量删除所有模型** * 🗑️ **方法三:彻底卸载 Ollama(含所有数据)** * ⚠️ **注意事项** * ✅ **验证是否删除成功** * open-webui 安装 开启大模型交互 * open-webui pip 安装 * open-webui 启动服务 * 浏览器访问 http://IP:8082/ : * ❤️ 时不我待,一起学AI ollama 基本信息 * https://ollama.com/ ollama 运行模型 命令行执行即可 0.6B parameter model ollama run qwen3:0.6b 1.7B

By Ne0inhk
他到底喜欢我吗?赛博塔罗Java+前端实现,一键解答!

他到底喜欢我吗?赛博塔罗Java+前端实现,一键解答!

个人主页-爱因斯晨 文章专栏-赛博算命 原来我们在已往的赛博算命系列文章中的源码已经传到我的Github仓库中,有兴趣的家人们可以自己运行查看。 Github 源码中的一些不足,还恳请业界大佬们批评指正! 本文章的源码已经打包至资源绑定,仓库中也同步更新。 一、引言 在数字化浪潮席卷全球的当下,传统塔罗牌占卜这一古老智慧也迎来了新的表达形式 ——“赛博塔罗”。本文档旨在深入剖析塔罗牌的核心原理,并详细介绍如何利用 Java 语言实现一个简易的塔罗牌预测程序,展现传统神秘学与现代编程技术的融合。 二、塔罗牌原理 (一)集体潜意识与原型理论 瑞士心理学家卡尔・荣格提出的 “集体潜意识” 理论,为塔罗牌的运作提供了重要的心理学支撑。该理论认为,人类拥有超越个体经验的共同心理结构,其中蕴含着 “原型”—— 即普遍存在的、象征性的模式或形象。 塔罗牌的 22 张大阿尔卡那牌恰好与这些基本原型相对应。例如,“愚人” 代表着天真与新开始的原型,“魔术师” 象征着创造力与潜能的原型,“女祭司” 则体现了智慧与直觉的原型。这些原型是全人类共通的心理元素,这也正是不同文化背景的人都能

By Ne0inhk
Flutter for OpenHarmony:web_socket_channel 全平台 WebSocket 通信标准库,从原理到鸿蒙实战(3000字深度解析)

Flutter for OpenHarmony:web_socket_channel 全平台 WebSocket 通信标准库,从原理到鸿蒙实战(3000字深度解析)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在现代 App 开发中,实时通信(Real-time Communication)已成为标配。无论是社交聊天的由“推”变“拉”,还是股票行情的毫秒级跳动,亦或是智能家居的状态同步,传统的 HTTP 轮询(Polling)已无法满足低延迟、高并发的需求。 WebSocket 协议应运而生。它基于 TCP,但在握手阶段利用 HTTP 升级协议(Upgrade Header),成功后建立全双工(Full-Duplex)的长连接。在这条通道上,客户端和服务端可以随时互相推送数据,且头部开销极小。 在 Flutter 生态中,虽然 dart:io 提供了原生的 WebSocket 类,dart:

By Ne0inhk