Redis 常用数据结构及操作

Redis 支持多种数据类型,这些数据类型允许你存储和操作不同类型的数据。以下是 Redis 支持的主要数据类型

  1. 字符串(Strings):最基本的数据类型,可以存储文本或二进制数据。在 Redis 中,字符串的最大长度为 512 MB。
  2. 哈希(Hashes):用于存储键值对的散列集合。每个哈希可以包含多个字段和对应的值,适合存储对象或关联数据。
  3. 列表(Lists):有序的字符串列表,允许在列表的两端进行元素的插入和删除操作。可以用来实现队列或栈等数据结构。
  4. 集合(Sets):无序的字符串集合,不允许重复元素。可以进行集合操作,如并集、交集和差集。
  5. 有序集合(Sorted Sets):类似于集合,但每个成员都关联一个分数(score),可以用于排序和排名。有序集合的元素是唯一的,但分数可以重复。
  6. 地理空间数据(GeoSpatial):Redis 3.2及以上版本支持的数据类型,用于存储地理位置和经纬度信息,并支持地理位置的查询。

1 字符串

# 设置字符串键 "username" 的值为 "Alice"
SET username "Alice"# 获取字符串键 "username" 的值
GET username
# 输出: "Alice"# 自增计数器 "visits"
INCR visits
# 输出: (当前计数值)# 设置带有过期时间的缓存
SET user:1234 "{\"name\": \"Bob\", \"email\": \"bob@example.com\"}" EX 3600
# 设置键 "user:1234" 的值为 JSON 格式的数据,并在 3600 秒后过期# 获取缓存数据
GET user:1234
# 输出: "{\"name\": \"Bob\", \"email\": \"bob@example.com\"}"# 删除某一个键
# DEL key [key ...]
DEL username
# 设置某个键,让它在规定时间内消失
SETEX key seconds value# 方式1 
SETEX name 20 "Alice"# 方式2 
GETSET name "Alice"
EXPIRE name 20

哈希 hash 操作命令

  • HSET key field value 表示 : 将哈希表key中的字段field 的值设置为value
  • HGET key field 表示: 获取存储在哈希表中指定字段的值
  • HDEL key field 表示: 删除存储在哈希表中的指定字段
  • HKEYS key 表示: 获取哈希表中所有的字段
  • HVALS key 表示: 获取哈希表中所有的值
  • HGETALL key 表示: 获取在哈希表中指定key的所有字段和值
  • HEXISTS key field 表示: 检查哈希字段是否存在
  1. HSET:设置哈希字段的值。
HSET user:123 name "Alice"

这将在名为 “user:123” 的哈希中设置字段 “name” 的值为 “Alice”。
2. HGET:获取哈希字段的值。

HGET user:123 name

这将返回 “user:123” 哈希中字段 “name” 的值,即 “Alice”。

  1. HMSET:同时设置多个哈希字段及其值。
HMSET user:123 name "Alice" age 30 email "alice@example.com"

这将在 “user:123” 哈希中设置字段 “name” 的值为 “Alice”,字段 “age” 的值为 30,字段 “email” 的值为 “alice@example.com”。

  1. HDEL:删除一个或多个哈希字段。
HDEL user:123 email

这将从 “user:123” 哈希中删除字段 “email” 及其对应的值.

  1. HINCRBY:对哈希字段的值执行增量操作。
HINCRBY user:123 age 5

这将将 “user:123” 哈希中字段 “age” 的值增加 5。

  1. HLEN:获取哈希中字段的数量。
HLEN user:123

列表list的操作命令

  • LPUSH key value1 [value2] 将一个或者多个值插入到列表的头部
  • RPUSH key value1 将一个或多个元素插入到列表的尾部
  • LRANGE key start stop 获取列表中指定范围内的元素
  • LLEN key 获取列表的长度(即列表中元素的数量)
  • RPOP key 移除并获取列表的最后一个元素
  • LPOP key 移除并返回列表的头部元素
  • LINDEX key index 获取列表中指定索引位置的元素
  • LINSERT key BEFORE|AFTER pivot value : 在列表中指定元素 pivot 的前面或后面插入新元素。
  • LSET key index element 设置列表中指定索引位置的元素的值

LTRIM key start stop: 保留列表中指定范围内的元素,其它元素将被删除。
BLPOP key [key …] timeout: 阻塞式地移除并返回多个列表的头部元素,如果列表为空,则在指定的超时时间内等待。
BRPOP key [key …] timeout: 阻塞式地移除并返回多个列表的尾部元素,如果列表为空,则在指定的超时时间内等待。
RPOPLPUSH source destination: 移除 source 列表的尾部元素,并将它添加到 destination列表的头部。
LPOS key element [RANK rank] [COUNT num]: 获取列表中指定元素的索引位置。可选的参数 RANK 可以用来指定从哪个索引开始搜索,COUNT 可以用来指定要返回的匹配元素的数量。

LPUSH root_name zhs
LPUSH root_name wb
LPUSH root_name mhf

查看范围内元素

127.0.0.1:6379> LRANGE root_name 0 2
1) "mhf"
2) "wb"
3) "zhs"

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

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

相关文章

Excel数据分析教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Excel数据分析入门教程 - 从基本到高级概念的简单步骤了解Excel数据分析,其中包括概述,流程,Excel数据分析概述,使用范围名称,表格,使用文本功能清理数据,清洁数据包含日期值&#xf…

Django_rest_framework-drf 笔记

Django-drf-序列化器高级用法之SerializerMethodField Django-drf-序列化器高级用法之SerializerMethodField - 知乎 (zhihu.com) 科普search_fields与filter_fields的区别 一句话:search_fields 里的字段,是做模糊查询的字段;filter_fiel…

25.基于XML的AOP实现

基于XML的AOP实现 主要是使用XML去代替注解&#xff0c;来实现起到代替注解的作用&#xff0c;实际使用频率很低 除了Component注解&#xff0c;将里面其他的注解都注释掉 spring-aop-xml.xml <?xml version"1.0" encoding"UTF-8"?> <beans x…

【自动化测试】-关键字驱动测试框架设计

一、什么是关键字驱动 它是主流的应用最广泛自动化测试设计模式 主流设计模式&#xff1a;关键字驱动、数据驱动、POM 关键字驱动&#xff1a;表格驱动测试或者基于动作字的测试。 基于关键字驱动设计把用例分为四大部分&#xff1a; 1. Test Step(测试步骤)&#xff1a;就…

【Spring Cloud Gateway】NoSuchBeanDefinitionException

目录 使用了springcloud gateway作为微服务的网关 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type org.springframework.core.convert.ConversionService available: expected at least 1 bean which qualifies as …

list模拟实现

一、结点的定义 有三个成员&#xff0c;2个指向前面和后面的指针&#xff0c;一个表示结点存储T类型的值。 对于_prev和_next&#xff0c;类型是 list_node<T>*&#xff0c;不是list_node*&#xff0c;加上类型参数T之后&#xff0c;才是模板类的类型。 构造函数中&am…

【MySQL】MySQL8.1.0版本正式发布带来哪些新特性?

文章目录 前言一、畅谈新版本二、8.1.0版本部署2.1、环境准备2.2、配置yum安装依赖2.3、用户及目录创建2.4、创建用户及组2.5、解压缩包2.6、环境变量配置2.7、创建参数文件2.8、数据库初始化2.9、启动Mysql2.10、登陆MySQL 8.1 三、新特性3.1、密码参数3.2、错误日志加强3.3、…

Spring Security OAuth2.0(6):自定义认证自定义登录页

文章目录 自定义登录界面配置自定义登录页面 自定义登录界面 \qquad 你可能想知道登录页面从哪里来&#xff1f;因为我们并没有提供任何的HTML或JSP文件。Spring Security 的默认配置没有明确设定一个登录页面的URL&#xff0c;因此Spring Security 会根据启用的功能自动生成一…

Go语言ErrGroup

Go语言ErrGroup 在并发编程里&#xff0c;sync.WaitGroup 并发原语的使用频率非常高&#xff0c;它经常用于协同等待的场景&#xff1a;goroutine A 在检查 点等待一组执行任务的 worker goroutine 全部完成&#xff0c;如果在执行任务的这些 goroutine 还没全部完成&#xf…

Godot实用代码-存取存档的程序设计

1. Settings.gd 全局变量 用于保存玩家设置 对应Settings.json 2. Data.gd 全局变量 用于保存玩具数据 对应Data.json 实践逻辑指南 1.在游戏开始的时候&#xff08;游戏场景入口的_ready()处&#xff0c; Settings.gd

day09面试题

面试题 说说对 React 的理解?有哪些特性?说说 Real DOM 和 Virtual DOM 的区别?优缺点?说说 React 生命周期有哪些不同阶段?每个阶段对应的方法是?说说 React 中的 setState 执行机制&#xff1f;说说对 React 中类组件和函数组件的理解?有什么区别? 说说对 React 的理…

Linux内核结构与特性简介

系统调用接口&#xff1a;位于最上层&#xff0c;实现了一些基本的功能&#xff0c;如read和write等系统调用。这是用户空间程序与内核交互的接口&#xff0c;提供了对内核功能的访问。 内核代码&#xff1a;位于系统调用接口之下&#xff0c;可以看作是独立于体系结构的通用内…

RabbitMQ的基本使用

RabbitMQ的基本使用 引入程序集&#xff1a;RabbitMQ.Client 生产者 /// <summary> /// ProducerWrites 写入消息 ConsumerConsumption 消费消息 /// </summary> public class ProducerWrites {public static void Send(){string path AppDomain.CurrentDomain.…

qt和vue交互

1、首先在vue项目中引入qwebchannel /******************************************************************************** Copyright (C) 2016 The Qt Company Ltd.** Copyright (C) 2016 Klarlvdalens Datakonsult AB, a KDAB Group company, infokdab.com, author Milian …

CLIP概述

文章目录 Learning Transferable Visual Models From Natural Language Supervision(使用自然语言的监督信号训练一个可迁移的视觉模型)AbstractIntroduction and Motivating WorkApproachNatural Language SupervisionCreating a Suffciently Large DatasetSelecting an Eff…

13_Linux无设备树Platform设备驱动

目录 Linux驱动的分离与分层 驱动的分隔与分离 驱动的分层 platform平台驱动模型简介 platform总线 platform驱动 platform设备 platform设备程序编写 platform驱动程序编写 测试APP编写 运行测试 Linux驱动的分离与分层 像I2C、SPI、LCD 等这些复杂外设的驱动就不…

Fortinet Accelerate 2023·中国区巡展收官丨让安全成就未来

7月18日&#xff0c;2023 Fortinet Accelerate Summit在上海成功举办&#xff01;这亦象征着“Fortinet Accelerate2023中国区巡展”圆满收官。Fortinet携手来自多个典型行业的百余位代表客户&#xff0c;以及Telstra - PBS 太平洋电信、Tenable等多家生态合作伙伴&#xff0c;…

利用数据分析告警机制,实现鸿鹄与飞书双向集成

需求描述 实现鸿鹄与飞书的双向集成&#xff0c;依赖鸿鹄的告警机制&#xff0c;可以发送用户关心的信息到飞书。同时依赖飞书强大的卡片消息功能&#xff0c;在飞书消息里面能够通过链接&#xff08;如下图&#xff09;返回到鸿鹄以方便用户进一步排查和分析问题。 解决方案 1…

【PHP面试题75】PHP有哪些魔术变量,如何使用他们?

文章目录 一、前言二、魔术变量2.1 __LINE__2.2 __FILE__2.3 __DIR__2.4 __FUNCTION__2.5 __CLASS__2.6 __TRAIT__2.7 __METHOD__2.8 __NAMESPACE__ 三、总结 一、前言 本文已收录于PHP全栈系列专栏&#xff1a;PHP面试专区。 计划将全覆盖PHP开发领域所有的面试题&#xff0c;…

CGT Asia嘉年华|2023第四届亚洲细胞与基因治疗 创新峰会(广州站)10月升级启航

近年来&#xff0c;全球CGT发展突飞猛进&#xff0c;为遗传罕见病、难治性慢性病和肿瘤患者带来了新的希望&#xff0c;也成为整个国际领域科技竞争的未来焦点。国家发改委发布的《“十四五”生物经济发展规划》明确指出要重点发展基因诊疗、干细胞治疗、免疫细胞治疗等新技术&…