redis 的基本介绍以及 五种 数据类型

news2024/10/6 20:28:09

一、redis是什么?

一句话:redis 是一个开源的、使用C语言编写的、支持网络交互,基于内存也可持久化的 key-value (非关系型)数据库

redis作者博客,有兴趣的小伙伴可以去逛一逛:http://github.com/antirez

在这里插入图片描述

二、redis的key命名规约

关于key 的命名,不要太长也不要太短,Key太长越占资源,太短可读性又很差,key 之间的单词用 :(冒号)隔开

emmmm …

一般来说,key 的命名可以这样,项目名称+表名称(mysql或者oracle 等 表名)+ 表中需要存储到redis的字段名字

比如

项目名称叫:project
mysql中用到的表名字叫 user_info
需要存储的字段为 :name
值为:java资讯

那么,结合起来就是这样
project:userInfo:name:Java资讯

一般来讲是上面这种命名方式,最主要还是看公司有没有自己的一套命名方式,要是公司没有强制要求这些,就算你 直接 这样 name:java资讯 ,也是可以的,开发前还是问一问

三、redis的 value 数据结构

redis的value 支持 5 种 数据类型

  • 字符串类型(String) 列表类型 (List)

  • 哈希类型(Hash)

  • 无序集合类型(Set)

  • 有序集合类型(Zset)

这五种类型长什么样呢?简单图解

在这里插入图片描述
下面的演示例子(key )我就不按照什么冒号分开命名了,实际上我们公司也没有这样命名,但你要知道这个命名方式,以防万一

字符串类型(String)

设置值:set+key名称+值

获取值:get key名称

在这里插入图片描述
给同一个key 设置不同的字符串,后者会覆盖前者的值

在这里插入图片描述
还可以通过字符串类型对数值进行操作,redis 自己会将字符串转为数字

incr : 自增1

在这里插入图片描述
incrby : 原数字+几

在这里插入图片描述
3+2 5+9 14+1

同理:
decr :减 1
decrby : 原数字 - 几

在这里插入图片描述

列表类型(List)

lpush:左侧插入元素,也就是在list的头部
lpush+key命名+ 值

在这里插入图片描述
返回的 (integer)1 (integer)2 是元素个数

使用 lrange 命令查看元素,可以看到是在头部插入的 , 0 1 代表角标从 0 到 1 的 元素

在这里插入图片描述
rpush:右侧插入元素,也就是在list的尾部
rpush+key命名+ 值

在这里插入图片描述
list 的应用其实很广泛,我们可以使用list来实现消息队列并且可以保证先后顺序,其次还可以使用lrange实现分页功能

所以说redis 牛就是很牛,还远远不止这些

哈希类型(Hash)

格式1:
存:hset key 值的key 值
取:hget key 值的key 值

第一个key 是redis key-value 的key
第二个key 是 value hash类型又是key-value 的key
可以再看看这张图

在这里插入图片描述
别忘了 redis 是 key-value 存储数据的

在这里插入图片描述
格式2:
设置多个值
hmet key 值key1 值1 值key2 key2 。。。

在这里插入图片描述
获取多个值

在这里插入图片描述
其他一些Hash 操作可以看看官网 https://redis.io/commands/hmset/

无序集合类型(Set)

设置值:sadd key 值
获取所有:smembers key

在这里插入图片描述
可以看到输出值的顺序是没有规律的
试试重复值,再次设置“redis12" 返回 0,说明不可重复

在这里插入图片描述
判断一个元素是否在集合中 用 sismember

在这里插入图片描述
存在返回1,不存在返回 0

有序集合类型(Zset)

语法格式

zadd key 序号 值

在这里插入图片描述
成功返回1

如果相同值则返回0 ,不可重复,表示失败

在这里插入图片描述
是可以存在相同序号的,并列,比赛都有并列第一

在这里插入图片描述
查看所有元素

zrange key名字 0 -1

在这里插入图片描述
如果想查看所有元素并且带上序列号
zrange key名字 0 -1 withscores

在这里插入图片描述
通过打印输出可以看到 zset 是有序的,不可重复

在这里插入图片描述

以上就是redis基本介绍,以及五大类型的存储

当然了,开发中肯定不是用命令行这样操作,下一章节我们将来探讨探讨,在Java中,在代码中 是怎么样操作 使用redis的 以及 在springboot框架中是怎样来使用的 ,以及 两者不同使用情况的区别。。

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

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

相关文章

后台登录功能开发 -- 手把手教你做ssm+springboot入门后端项目黑马程序员瑞吉外卖(二)

文章目录 前言三、后台登录功能开发1. 需求分析2. 代码开发3. 功能测试(简略) 四、后台退出功能开发1. 需求分析2. 代码开发3. 功能测试(简略) 总结 前言 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客…

Servlet规范maven创建webapp项目

main目录下新建webapp pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.…

C++完成淄博烧烤节管理系统

背景&#xff1a; 这次我们结合今年淄博烧烤做一个餐厅管理系统&#xff0c;具体需求如下&#xff0c;我们选择的是餐饮商家信息管理 问题描述&#xff1a; 淄博烧烤今年大火&#xff0c;“进淄赶烤”是大家最想干的事情&#xff0c;淄博烧烤大火特火的原因&#xff0c;火的…

SSM海南省陵水县旅游网站-计算机毕设 附源码87145

SSM海南省陵水县旅游网站 摘 要 本系统的前端界面主要实现页面的美观和动态效果使之符合广大群众的审美观&#xff0c;后台主要使用的技术主要有Java编程语言&#xff0c;SSM框架&#xff0c;JSP技术、Ajax技术进行开发系统。海南省陵水县旅游网站解决了传统旅游方式中数据分析…

开发者聚焦 | 不容错过的开发者新专栏就要来啦!

掌握前沿技术动态、获得新产品与新应用的使用技巧、在开放专业的社区中与志同道合的朋友交流互动&#xff0c;这些对于开发者来说&#xff0c;都是提高工作效率与自我技能的利器。 为了与开发者互动&#xff0c;并在社区与开发者建立连接和影响&#xff0c;让亚马逊云科技更好…

Toyota Programming Contest 2023#3(AtCoder Beginner Contest 306) 6月17日比赛 第四题

题目地址&#xff1a;D - Poisonous Full-Course 题目大意 时间限制&#xff1a;2秒&#xff0c;空间限制&#xff1a;1024MB&#xff0c;分值&#xff1a;400分 问题描述 小明来到了一家餐厅&#xff0c;一共有道菜&#xff0c;第道菜具有以下属性&#xff1a; 若&#xf…

web前端框架JS学习之JavaScript类型转换

vascript有多种数据类型&#xff0c;如字符串、数字、布尔等&#xff0c;可以通过typeof语句来查看变量的数据类型。数据类型转换就是数据类型之间相互转换&#xff0c;比如把数字转成字符串、把布尔值转成字符串、把字符串转成数字等&#xff0c;这在工作也是经常碰到的。 本…

C++----继承,多重继承(7)

面向对象的三大特征 封装 继承 多态 封装 该隐藏的数据私有化&#xff0c;该公开的数据设计为公有的接口 private public 目的为了更好地分工合作&#xff0c;有助于数据的安全性和使用的方便性&#xff0c;也防止不必要的扩展。 继承(inherite) 作用 实现了代码的复用&a…

浅析餐饮油烟对环境空 气质量的影响与对策

摘 要&#xff1a;为进一步揭示餐饮油烟的空气污染特性&#xff0c;研究了达州市市政中心环境空气自动监测站周边某餐饮业餐饮油烟对该站点周边环境的影响。结果表明:1&#xff09;距离餐饮油烟排气口越近&#xff0c;餐饮油烟对颗粒物的影响越明显&#xff0c;反之亦然。同时&…

编译原理笔记10:语言与文法,正规式转CFG,正规式和CFG,文法、语言与自动机

目录 正规式&#xff0c;和 CFG正规式到 CFG 的转换&#xff1a;正规式和 CFG 的关系为毛不用 CFG 描述词法规则贯穿词法、语法分析始终的思想 上下文有关文法 CSG文法、语言与自动机0型文法&#xff1a;1型文法&#xff1a;2型文法&#xff1a;3型文法&#xff1a;为什么&…

从0到1基于ChatGLM-6B使用LoRA进行参数高效微调

之前尝试了基于LLaMA使用LoRA进行参数高效微调&#xff0c;有被惊艳到。相对于full finetuning&#xff0c;使用LaRA显著提升了训练的速度。 虽然 LLaMA 在英文上具有强大的零样本学习和迁移能力&#xff0c;但是由于在预训练阶段 LLaMA 几乎没有见过中文语料。因此&#xff0…

pdf上传文件过大怎么缩小?pdf在线压缩的简单方法

在日常使用中&#xff0c;我们经常会遇到需要共享或传输pdf文件但是文件过大无法传输的情况&#xff0c;需要使用压缩图的pdf压缩&#xff08;https://www.yasuotu.com/pdfyasuo&#xff09;功能来解决这个问题&#xff0c;利用这款pdf在线压缩工具可以快速将pdf文件压缩&#…

【三维重建】【深度学习】windows10下NeRF代码Pytorch实现

【三维重建】【深度学习】windows10下NeRF代码Pytorch实现 提示:最近开始在【三维重建】方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法。 文章目录 【三维重建】【深度学习】windows10下NeRF代码Pytorch实现前言NeRF模型运行下载源码并安装环境训练NeRF训练…

【AI底层逻辑】——篇章12:统计学与概率论数据“陷阱”

目录 引入 一、“思维方式”是解题关键&#xff01;&#xff01; 1、统计思维的诞生 2、概率的力量 概率与数理统计的区别&#xff1f; 如何验证假设&#xff1f; 经验与现实如何共存——贝叶斯定理&#xff1f; “朴素”的朴素贝叶斯&#xff1f; 二、数据“陷阱” …

HTTP Host 头攻击是什么?

&#x1f482; 个人网站:【海拥】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 前言什么是HTTP Host头…

小鱼深度产品测评之:阿里云云产品OCR文档自学习,一款面向“无算法基础“的企业与个人开发者用户的产品。

OCR文档自学习 1、引言2、开箱体验3、我的任务菜单3.1 创建任务3.2 编辑任务3.3 创建模板 4、 在线使用 菜单5、 数据监控 菜单6、总结 1、引言 OCR文档自学习&#xff0c;看到这个标题&#xff0c;很多人第一反应就是&#xff0c;我不会算法 这个怎么搞的嘛&#xff1f; 其…

MetaAI发布人工智能语音模型Voicebox

Meta官网博客更新&#xff1a;人工智能研究人员在语音生成人工智能方面取得了突破。我们开发了Voicebox&#xff0c;这是第一个可以推广到语音生成任务的模型&#xff0c;它没有经过专门训练&#xff0c;以最先进的性能来完成。 与图像和文本的生成系统一样&#xff0c;Voicebo…

CRC校验码详解、常见算法实现及代码实例

一、CRC概念 1. 什么是CRC&#xff1f; 在前面的文章中通过小例子的比喻&#xff0c;简单介绍过什么是CRC&#xff0c;这里再详细的讲解一次。 CRC&#xff08;Cyclic Redundancy Checksum&#xff09;是一种纠错技术&#xff0c;代表循环冗余校验和。 数据通信领域中最常用的…

第二十二章_Redis经典五大类型源码及底层实现

redis源码在哪里 \redis-7.0.5\src https://github.com/redis/redis 源码分析参考书&#xff08;推荐&#xff09; 《Redis设计与实现》 《Redis5设计与源码分析》 Redis源代码的核心部分 src源码包下面该如何看&#xff1f; 源码分析思路 这么多你如何看&#xff1f; 1、外…

C/C++ VS2019连接MySQL数据库 - 增删改查(详细步骤)

一、配置Visual Studio 找到自己安装MySQL的路径&#xff0c;确保有include和lib两个文件夹 打开创建的Visual Studio项目&#xff0c;切换x64平台 注意&#xff1a;如果你的项目中没有x64平台&#xff0c;请严格按照下面图片的步骤进行操作 a. 点击下拉框&#xff0c;点击配…