Redis:数据类型

1. 字符串(String)
简介
- 概念:这是最简单的数据类型,可以存储字符串、整数或浮点数。
- 特点:支持原子操作,如递增和递减数值。
示例
# 设置一个键值对
SET mykey "Hello, Redis!"# 获取该键的值
GET mykey
# 输出: "Hello, Redis!"# 将字符串解释为整数并递增
INCR mycounter
# 如果mycounter之前不存在,则初始化为0后递增,结果为1# 递增指定数量
INCRBY mycounter 5
# 结果为6# 浮点数递增
INCRBYFLOAT myfloat 0.5
# 如果myfloat之前不存在,则初始化为0后递增,结果为0.5
2. 哈希(Hash)
简介
- 概念:类似于编程语言中的哈希表或字典,它允许你在一个键下存储多个字段-值对。
- 特点:适合存储对象属性,减少内存占用。
示例
# 创建一个用户记录
HMSET user:1000 name "Alice" age 30 city "Beijing"# 获取所有字段及其值
HGETALL user:1000
# 输出:
# 1) "name"
# 2) "Alice"
# 3) "age"
# 4) "30"
# 5) "city"
# 6) "Beijing"# 获取单个字段的值
HGET user:1000 name
# 输出: "Alice"# 更新某个字段的值
HSET user:1000 age 31
3. 列表(List)
简介
- 概念:有序集合,元素按照插入顺序排列,支持从两端高效地添加和移除元素。
- 特点:非常适合实现队列和栈结构。
示例
# 向列表尾部添加元素
RPUSH mylist "item1"
RPUSH mylist "item2"
RPUSH mylist "item3"# 获取整个列表
LRANGE mylist 0 -1
# 输出: ["item1", "item2", "item3"]# 从列表头部弹出元素
LPOP mylist
# 输出: "item1"# 从列表尾部弹出元素
RPOP mylist
# 输出: "item3"
4. 集合(Set)
简介
- 概念:无序且不允许重复元素的集合。
- 特点:用于成员测试、交集、并集等集合运算。
示例
# 添加元素到集合
SADD myset "apple"
SADD myset "banana"
SADD myset "orange"# 检查元素是否存在于集合中
SISMEMBER myset "banana"
# 输出: (integer) 1# 获取所有元素
SMEMBERS myset
# 输出: ["apple", "banana", "orange"]# 计算两个集合的交集
SINTER set1 set2
5. 有序集合(Sorted Set)
简介
- 概念:类似集合,但每个元素关联一个分数,元素按分数排序。
- 特点:非常适合排行榜或优先级队列的应用场景。
示例
# 添加带分数的元素
ZADD myzset 1 "one"
ZADD myzset 2 "two"
ZADD myzset 3 "three"# 获取按分数排序的所有元素
ZRANGE myzset 0 -1 WITHSCORES
# 输出:
# 1) "one"
# 2) "1"
# 3) "two"
# 4) "2"
# 5) "three"
# 6) "3"# 根据分数范围获取元素
ZRANGEBYSCORE myzset 1 2 WITHSCORES
# 输出:
# 1) "one"
# 2) "1"
# 3) "two"
# 4) "2"
Redis 的数据类型涵盖了常见的需求,包括简单的键值对存储、复杂对象建模、队列管理以及集合运算等。选择合适的数据类型不仅能简化代码逻辑,还能显著提升应用的性能和可维护性。以下是一些使用建议:
- 字符串:适用于简单的键值对存储和计数器。
- 哈希:适合表示对象或记录,尤其是当对象有多个属性时。
- 列表:非常适合实现消息队列或日志系统。
- 集合:用于去重和集合运算,如社交网络中的好友关系处理。
- 有序集合:非常适合排行榜或基于权重的选择机制。
相关文章:
Redis:数据类型
1. 字符串(String) 简介 概念:这是最简单的数据类型,可以存储字符串、整数或浮点数。特点:支持原子操作,如递增和递减数值。 示例 # 设置一个键值对 SET mykey "Hello, Redis!"# 获取该键的值…...
搭建Node.js后端
从头开始搭建一个Node.js后端,并实现查询历史数据的功能,下面是详细的步骤说明,包括环境配置、项目初始化、代码编写、以及服务器启动。 1. 环境配置 1.1 安装 Node.js 和 npm 首先,你需要在你的电脑上安装 Node.js 和 npm&…...
集合——数据结构
数据结构 就是计算机存储数据的方式。 不同情况下采取不同数据结构会让数据查找,存储更加有效率。 栈...
从CentOS到龙蜥:企业级Linux迁移实践记录(系统安装)
引言: 随着CentOS项目宣布停止维护CentOS 8并转向CentOS Stream,许多企业和组织面临着寻找可靠替代方案的挑战。在这个背景下,龙蜥操作系统(OpenAnolis)作为一个稳定、高性能且完全兼容的企业级Linux发行版࿰…...
《机器学习》——支持向量机(SVM)
文章目录 什么是支持向量机?基本原理数学模型 支持向量机模型模型参数属性信息 支持向量机实例(1)实例步骤读取数据可视化原始数据使用支持向量机训练可视化支持向量机结果完整代码 支持向量机实例(2)实例步骤导入数据…...
【PPTist】公式编辑、插入音视频、添加动画
一、插入公式 点击公式的时候 latexEditorVisible 会变成 true src/views/Editor/CanvasTool/index.vue <Modalv-model:visible"latexEditorVisible" :width"880" ><LaTeXEditor close"latexEditorVisible false"update"data &…...
LeetCode - #186 翻转字符串里的单词 II(会员题)
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...
Kafka核心参数与使用02
一、从基础的客户端说起 Kafka 提供了非常简单的生产者(Producer)和消费者(Consumer)API。通过引入相应依赖后,可以快速上手编写生产者和消费者的示例。 1. 消息发送者主流程 一个最基础的 Producer 发送消息的步骤…...
Three.js 渲染技术:打造逼真3D体验的幕后功臣
文章目录 前言一、着色器(Shaders)二、后处理(Post-processing)三、抗锯齿(Anti-aliasing)四、实时渲染与离线渲染五、光照模型与材质优化六、环境映射(Environment Mapping)七、纹理…...
QTcpSocket 如何统计在线时长
基本原理 QTcpSocket是 Qt 库中用于 TCP 通信的类。要统计在线时长,关键思路是记录连接建立的时间和当前时间,通过计算两者的差值来得到在线时长。实现步骤 记录连接建立时间: 在连接成功的信号槽函数中记录开始时间。例如,当QTcpSocket成功连接到服务器时,会发出connecte…...
【Altium】AD使用智能粘贴功能把多个网络标签改成端口
1、 文档目标 使用智能粘贴功能把多个网络标签(net lable)改成端口(port) 2、 问题场景 客户有一份原理图,网络用的是net label,没用Port,然后创建一个sheet symbol,但是sheet sy…...
.NET 终止或结束进程
如何使用 C# 终止进程。 使用简单的方法终止.NET中的现有进程Process.Kill()。有一个可选参数 true 或 false,用于结束与要结束的进程相关的所有子进程。 了解如何创建流程。 结束当前进程: System.Diagnostics.Process.GetCurrentProcess().Kill(tru…...
R.swift库的详细用法
R.swift 是一个 Swift 工具库,它提供了一个自动生成的类 R,使得你可以通过类型安全的方式访问项目中的资源,例如图片、字体、颜色、XIB 文件等。通过 R.swift,你可以避免字符串类型的错误,提升代码的可维护性。 以下是 R.swift 库的详细用法: 1. 安装 R.swift 使用 Sw…...
Js的回调函数
一、什么是回调函数(Callback)? 回调函数(Callback Function)是指一个函数被作为参数传递给另一个函数,并在特定事件发生或操作完成时执行。 可以通俗地理解为一种“委托”机制。 在JavaScript中࿰…...
flutter 独立开发之笔记
1、# use: - [flutter_launcher_icons:] 每次修改完icon后,都需要执行一遍 dart run flutter_launcher_icons 2、开启混淆并打包apk flutter build apk --obfuscate --split-debug-info./out/android/app.android-arm64.symbols 3、开启windows支持 flutter con…...
PHP的扩展Imagick的安装
windows下的安装 下载:Imagick扩展 PECL :: Package :: imagick 3.7.0 for Windows 下载:ghostscript(PDF提取图片时用到,不处理PDF可以不安装) Ghostscript : Downloads 安装扩展 Imagick解压后&…...
【git】在服务器使用docker设置了一个gogs服务器,访问和现实都不理想
以下问题应该都可以通过设置custom/conf/app.ini来解决 配置文档参考地址:https://www.bookstack.cn/read/gogs_zh/advanced-configuration_cheat_sheet.md domain显示的事localhost,实际上应该是一个IP地址。 关键字: DOMAIN ROOT_URL 因为是docker…...
多台PC共用同一套鼠标键盘
当环境中有多个桌面 pc 需要操作的时候,在 多台 pc 之间切换会造成很多的不方便 可以通过远程进行连接,但是有一个更好的方案是让多台机器之间共用同一套键盘鼠标 常用的解决方案 synergy 和 sharemouse,通过移动光标在不同的 pc 间切换 s…...
大语言模型是如何训练出来的?
近期听了不少与AI相关的播客,有理想转型AI的分享,有Character.ai出来同事的分享等,结合对Transformer架构的理解尝试大致还原大语言模型的训练过程。不过,当我这样的“中国大妈”也能够大致琢磨明白大语言模型是如何训练出来的时候…...
Vue2与Vue3在项目开发中的选择:深入探讨
文章目录 前言一、Vue2的优势与挑战二、Vue3的进步与特性三、如何做出选择?结语 前言 Vue.js 是一个用于构建用户界面的渐进式JavaScript框架。Vue2和Vue3是其两个主要版本,它们各自拥有一系列特点和优势。随着Vue3的发布,开发者们面临着在新…...
GLM-4.1V-9B-Base惊艳输出:支持追问式对话的图片理解连续推理演示
GLM-4.1V-9B-Base惊艳输出:支持追问式对话的图片理解连续推理演示 1. 视觉多模态模型新标杆 GLM-4.1V-9B-Base是智谱最新开源的视觉多模态理解模型,它重新定义了图片理解与交互的方式。不同于传统视觉模型只能做简单识别,这个9B参数的模型支…...
如何通过ImageToSTL实现图像三维化?解锁创意设计新可能
如何通过ImageToSTL实现图像三维化?解锁创意设计新可能 【免费下载链接】ImageToSTL This tool allows you to easily convert any image into a 3D print-ready STL model. The surface of the model will display the image when illuminated from the left side.…...
PX4飞控系统架构深度解析:从模块化设计到自主飞行实战
PX4飞控系统架构深度解析:从模块化设计到自主飞行实战 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot PX4作为开源无人机飞控系统的行业标准,为开发者提供了从多旋翼到固定翼…...
利用Graphormer进行化学反应预测:从反应物到产物的智能推断
利用Graphormer进行化学反应预测:从反应物到产物的智能推断 1. 化学反应预测的挑战与机遇 有机化学合成是药物研发和材料科学的核心环节,但传统反应预测高度依赖化学家的经验。一个资深化学家可能需要花费数小时甚至数天时间,通过试错法来设…...
Autovisor:5分钟快速上手的智慧树自动化学习终极指南
Autovisor:5分钟快速上手的智慧树自动化学习终极指南 【免费下载链接】Autovisor 2025智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装版] 项目地址: https://gitcode.com/gh_mirrors/au/Autovisor Autovisor是一款专为智慧树在线课程平台设计的…...
开源键盘定制工具:无需编程打造专属机械键盘体验
开源键盘定制工具:无需编程打造专属机械键盘体验 【免费下载链接】keyboards 项目地址: https://gitcode.com/gh_mirrors/key/keyboards 在机械键盘的世界里,每一位用户都渴望拥有一把真正符合自己使用习惯的输入设备。开源键盘定制工具正是这样…...
Arduino超声波测距库:基于外部中断的非阻塞HC-SR04驱动
1. 项目概述iarduino_HC_SR04_int是一款专为 Arduino IDE 设计的超声波测距传感器驱动库,面向 HC-SR04 模块提供高精度、非阻塞式距离测量能力。该库并非简单封装pulseIn()的轮询实现,而是基于硬件级外部中断机制构建,从根本上解决了传统超声…...
造相-Z-Image代码实例:Streamlit双栏UI自定义参数调节逻辑解析
造相-Z-Image代码实例:Streamlit双栏UI自定义参数调节逻辑解析 1. 项目概述 造相-Z-Image是一个基于通义千问官方Z-Image模型的本地轻量化文生图系统,专门为RTX 4090显卡进行深度优化。该系统采用BF16高精度推理技术,具备显存极致防爆能力&…...
千问3.5-9B Visio图表智能生成:从文本描述到专业架构图
千问3.5-9B Visio图表智能生成:从文本描述到专业架构图 1. 效果惊艳的智能图表生成 想象一下,你只需要用简单的文字描述系统架构,就能在几分钟内获得专业的Visio图表。千问3.5-9B让这个场景成为现实。这个模型不仅能理解复杂的系统架构描述…...
Qwen3-ForcedAligner-0.6B在ASR质检中的应用:快速验证时间戳准确性
Qwen3-ForcedAligner-0.6B在ASR质检中的应用:快速验证时间戳准确性 1. 引言:ASR质检中的时间戳痛点 在语音识别(ASR)系统的实际应用中,时间戳准确性常常是被忽视却至关重要的指标。想象这样一个场景:你开发了一个会议记录系统&a…...
