redis 数据类型简介

news2024/10/7 12:22:14

15d526fe25c7497292bc6e886b6f1cd6.gifredis 数据类型

 

redis的五种数据类型是:1、string(字符串);2、hash(哈希);3、list(列表);4、set(集合);5、sort set (有序集合)。其中,string(字符串)是redis中最基本的数据类型,一个key对应一个value,string 可以包含任何数据

 

字符串string

字符串是所有编程语言中最常见和最常用的数据类型,而且也是redis最基本的数据类型之一,而且redis中所有key的类型都是字符串,它是一个由字节组成的序列,在Rediss中是二进制安全的。这意味着该类型可以接受任何格式数据,如JPEG图像数据和Json对象说明信息。它是标准的key-value,通常用于存储字符串、整数和浮点。Value可容纳高达512MB的数据

 

添加一个key

image

 

//设置一个key value

set name liwenchao

 

//设置一个3秒的key,value, 3秒后查询就为nil

set name2 lili ex 3

获取一个key的内容

//可以重复多次定义一个key

set name liwenchao

//如上面演示内容

get name

删除一个key

image

 

//删除name=liwenchao这个key

del name

批量设置多个key,value

image

 

//mset key1 value1 key2 value2

mset name1 liwenchao name2 gaolili

批量根据key获取多个value

image

 

//mget key1 key2

mget name1 name2

追加数据

image

 

//append key1 appendvalue

append name1 app

数值递增

image

 

//设置一个key,value为int的值

set num 10

//让num的value自动+1

incr num

数值递减

image

 

//让num的value自动-1

decr num

获取字符串key的长度

image

 

//获取key为name1的value的长度

strlen name1

判断key是否存在

image

 

//有会返回1,没有会返回0

exists name1

查看key的过期时间

image

 

//ttl 查看key的剩余生存时间

// -1为永不过期,

// -2没有这个key

// num key的剩余有效时间

 

重新设置key的过期时间

image

 

expire name3 120

取消key的过期时间变为永久

image

 

persist name3

列表list

列表是一个双向可读可写的管道,其头部是左侧,尾部是右侧,一个列表可以最多包含2^32-1个元素,即4294967295个元素

 

生成列表并插入数据

image

 

//创建list1的列表并插入value1,value2,value3,value3在列表的最左侧

lpush list1 value1 value2 value3

获取列表长度

llen list

向列表追加数据

//从左边追加

lpush list1 name1

//从右边追加

rpush list1 name2 

获取列表指定范围数据

image

 

//name4在最左边,序列号为0 ,name3序列号为1

lrange list2 1 2

 

//如果只有4个元素。0-99可以打印所有的

lrange list2 0 99

移除左右一个元素

image

 

//从列表右边删除第一个

rpop list2

//从列表左边删除第一个

lpop list2

集合set

set是string类型的无序集合,集合中的成员是唯一的,这就意味着集合中不能出现重复的数据,可以在两个不同的集合中对数据进行比对并取值

 

生成集合key

image

 

//生成无序集合set1

sadd set1 v2 v5

追加数据

image

 

//可以看到加入相同数据时,返回为0,表示没变化

sadd set1 v2

查看集合所有数据

image

 

//获取无序集合set1的所有数据

smembers set1

获取集合的差集,交集,并集

//差集,set1有而set2没有的

sdiff set1 set2

 

//交集,set1有,set2也有的

sinter set1 set2

 

//并集,set1和set2元素的集合并去重

sunion set1 set2 

有序集合

redis有序集合和集合一样,也是string类型元素的集合,且不允许重复的成员,不同的是每个元素都会关联一个double双精度浮点数类型的分数,redis正是通过该分数来为集合中的成员进行从小到大的排序,有序集合成员是唯一的,但分数却可以重复,集合是通过hash表实现的,所以添加,删除,查找的复杂度是O(1),集合中最大的成员数是2^32-1,每个集合可以存储40多亿成员

 

生成有序集合

//生成有序集合zset1 

zadd zset1 1 v1

 

//获取类型

type zset1

 

//一次添加多个元素

zadd zset2 1 v1 2 v2 3 v3

集合排行

image

 

//显示所有key,value

zrevrange zset2 0 -1 withscores

 

//显示集合zset2内所有的key

zrange zset2 0 -1

获取集合长度

zcard zset1

基于索引返回数值

//id号从1到3的

zrange zset1 1 3

返回某个数值的索引

zrank zset2 v2

哈希hash

hash是一个string类型的feild和value的映射表,hash特别是和用于存储对象,redis中每个hash可以存储40多亿键值对

 

生成hash key

//设置一个键值对,我这里设置两个的时候报错了,按理说不应该报错的,待观察

hset hash1 name liwenchao

 

type hash1

获取hash key字段值

//获取key为name的键值对的值

hget hash1 name

删除一个hash key的字段

hdel hash1 name

获取所有hash表中的key

hkeys hash1

获取指定hash的所有key,value

hgetall hash1

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

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

相关文章

QT初体验:手把手带你写一个自己的串口助手

前言 本文记录一下用QT Creator 写一个基本功能齐全的串口助手的过程,整个工程只有几百行代码,跟着做下来对新手来说可以更快了解整个QT项目的开发过程和一些常用控件的使用方法。对新手学习QT能增强信心,话不多说,正文开始 先看…

Mysql日志redo log、bin log、undo log 区别与作用及二阶段提交

一、redo log 重做日志 作用:确保事务的持久性。防止在发生故障的时间点,尚有脏页未写入磁盘,在重启mysql服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性。 内容:物理格式的日志&#x…

46-Dockerfile-USER/WORKDIR指令

USER/WORKDIR指令 前言USER作用格式使用示例 WORKDIR作用格式说明使用示例 前言 本篇来学习下Dockerfile中的USER/WORKDIR指令 USER 作用 指定运行容器时的用户名或 UID,后续的RUN等指令也会使用指定的用户身份 说明: USER 只是帮助我们切换到指定的…

12_Uboot启动流程_4

目录 images全局变量 do_bootz函数 bootz_start函数 do_bootm_states函数 bootm_os_get_boot_func函数 do_bootm_linux函数 images全局变量 不管是bootz还是bootm命令,在启动Linux内核的时候都会用到一个重要的全局变量:images, images在文件cmd/bootm.c中有如下定义: i…

【2023/05/09】Scratch

Hello!大家好,我是霜淮子,2023倒计时第4天。 Share The mighty desert is burning for the love of a blade of grass who shaks her head and laughs and flies away. 译文: 无垠的沙漠热烈追求一叶绿草的爱,她摇摇…

PCL中点云分割算法简析

文章目录 前言一、点云分割算法简介1.1 基于RANSAC的点云分割1.2 基于聚类的点云分割1.2.1 欧式聚类分割 1.3 基于深度学习的点云分割 二、算法示例2.1 基于RANSAC的平面分割2.2 欧式聚类2.3 基于PointNet的点云分割 总结 前言 点云分割算法广泛应用于激光遥感、无人驾驶、工业…

centos安装nginx教程

安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境。 一. gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境&#xff0c…

【ESD专题】案例:TVS管钳位电压能不能通过TLP测试数据表征?

这几天遇到一个问题,就是还是想说TVS管导入的时候需要进行IEC61000-4-2 8kV接触静电的钳位波形测试。 比如有时可以看到规格书中给出对应的在IEC61000-4-2 8kV接触时的真实钳位波形: 根据我们文章【ESD专题】TVS管的选择的误区及钳位电压测试方法和一些参考手册所说…

计算机操作系统第四版第七章文件管理—课后习题答案

1.何谓数据项、记录和文件? 数据项:是最低级的数据组织形式,可以分为两种类型:基本数据项和组合数据项。基本数据项是用于描述一个对象的某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位,又称为字…

使用volta对node版本进行控制

安装volta 首先下载volta 下载完成之后在电脑上使用命令行工具查看是否安装成功 volta -v 使用 volta -h 命令可以查看volta的一些用法 安装全局的node版本,可以有三种,第一种是安装最新的,第二种是安装某一个大版本下的,第三种是安装指定的node版本(安装的时候需要等待一段时…

Rest风格复习

Rest风格复习 简介三种注解的风格快速开发 简介 通过一段路径和访问方式来确定访问资源的行为方式 使用POST方式 // value定义 路径 method定义访问的方式RequestMapping(value "/users",method RequestMethod.POST)ResponseBodypublic String save(){System.out.…

Andrew Ng和OpenAI教你写prompt

课程地址: https://learn.deeplearning.ai/chatgpt-prompt-engb站搬运: https://www.bilibili.com/video/BV1No4y1t7Zn 教学人员:Lsa Fulford, Andrew NG LLM的两种样式 Base LLM:基于文本训练数据预测下一个词的概率&#xff0…

制作Alpine Linux镜像报错errors: 15 distinct packages available

1.执行报错 执行docker build -t 镜像:版本 -f Dockerfile . 报错: 2.查看网上的解决思路 网上文档解决思路: 这边我做了一下改变把这些写入了dockerfile 加了几个RUN RUN rm -rf /var/cache/apk RUN mkdir -p /var/cache/apk RUN apk update -v 发现还…

Java基本数据类型详解及应用示例

Java作为一门强类型语言,基本数据类型是非常重要的概念。Java中基本数据类型分为四种类别:整数类型、浮点数类型、字符类型和布尔类型。其中,每一种数据类型都有着不同的占用字节数和表示范围,合理使用选择不同的数据类型可以提高…

数组低效的“插入”和“删除”

插入操作 假设数组的长度为 n,现在,如果我们需要将一个数据插入到数组中的第 k 个位置。为了把第 k 个位置腾出来,给新来的数据,我们需要将第 k~n 这部分的元素都顺序地往后挪一位。那插入操作的时间复杂度是多少呢&a…

ChatGPT 中文指令指南,教会你如何使用chatgpt实现中文你想要的答案

🧠 ChatGPT 中文指令指南,教会你如何使用chatgpt实现中文你想要的答案 1.学习英语–替代词典 App 场景例子Prompts解释中文英文意思,并解释单词的词根词缀。可以替代词典。告诉我 Egocentric 的词性和音标,并使用中文和英文解释…

OpenAI开源语音识别模型Whisper在Windows系统的安装详细过程

1、安装Python Python的安装很简单,点击这里进行下载。 安装完成之后,输入python -V可以看到版本信息,说明已经安装成功了。 如果输入python -V命令没有看到上面的这样的信息,要么是安装失败,要么是安装好之后没有自…

【自然语言处理】【大模型】CodeGen:一个用于多轮程序合成的代码大语言模型

CodeGen:一个用于多轮程序合成的代码大语言模型 《Code Gen: An Open Large Language Model For Code with Multi-Turn Program Synthesis》 论文地址:https://arxiv.org/pdf/2203.13474.pdf?trkpublic_post_comment-text 相关博客 【自然语言处理】【大…

【EasyPoi实战系列】Spring Boot使用EasyPoi实现一对多的导出 - 第469篇

​ 历史文章(文章累计460) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》…

Exams/2012 q1g

module top_module (input [4:1] x,output f ); assign f ~x[2]&~x[4] | ~x[1]&x[3] | x[2] & x[3] & x[4]; endmodule