Redis学习笔记Day01-Redis入门

声明:本博客部分内容是从终极SpringBoot讲义摘抄的,文字是OCR识别出来的,有可能存在识别错误的可能,如有错误,请大胆指正,我马上修改!

目录

  • 1.连接命令
  • 2.key相关命令
  • 3.String命令
  • 4.List命令
  • 5.Set命令
  • 6.ZSet命令
  • 7.Hash相关命令
  • 8.事务相关命令

在介绍 Redis 的使用之前,先简单介绍一下Redis 的数据存储知识。Redis 使用key-value 结构来保存数据,其中 value 支持如下 5 种数据类型。

  • Sting:最基本的数据类型,可保存任何数据。
  • Hash:是key-value 集合(类似于 Java 的 Map),key 和value 都是String 类型的数据。这
    种类型主要用于保存对象。
  • List: 元素是String 类型的有序集合,集合中的元素可以重复。
  • Set: 元素是 String 类型的无序集合,集合中的元素不能重复。
  • ZSet:元素是 string 类型的有序集合,集合中的元素不能重复。

Redis 为不同数据类型提供了不同的操作命令,因此对于特定类型的数据需要使用对应类型的命令执行操作。
下面简单介绍一些 Redis 的常用命令。

1.连接命令

auth 【用户名】 【密码】
这里用户名可以省略,假如我的密码是123456可以直接
auth 123456

在这里插入图片描述

2.key相关命令

与key 相关的常用命令如下。

  • DEL key:刪除key 対的 key-value 対。
  • DUMP key:导出key 对应的值。
  • EXISTS key: 判断key 是否存在。
  • EXPIRE key seconds:设置key对应的key-value 对经过 seconds 秒后过期。
  • EXPIREAT key timestamp:设置key 对应的key-value 对到timestamp 时过期。
  • PEXPIRE key milliseconds: 设置 key 対的 key-value 对经过 milliseconds 毫秒后辻期。
  • PEXPIREAT key milliseconds-timestamp: 设置 key 对应的 key-value 对到
    milliseconds-timestamp 时过期。
  • KEYS pattern: 返回匹配 pattern 的所有 key.
  • MOVE key db:将指定 key 移动到db 数据库中。
  • PERSIST key:删除key 的过期时间,key 将持久保持。
  • PTTL key: 以毫秒为单位返回指定 key剩余的过期时间。
  • TTL key:以秒为单位返回指定key剩余的过期时问。
  • RANDOMKEY:从当前数据库返回一个随机的 key。
  • RENAME key newkey: 将 key 重命名 newkey。
  • RENAMENX key newkey: 相当手安全版的 RENAME, 当 newkey 不存在オ能重命名
  • TYPE key:返回指定 key 存储的数据类型。
    运行示例
    在这里插入图片描述
    在这里插入图片描述

3.String命令

正如前面所言,Redis 内不同数据类型提供了不同的操作命令,当 value 是 String 类型時,需要使用与 string 相关的命令进行操作。与 string 相关的常用命令如下。

  • SET key value: 设置 key-value 対。
  • GET key:返回指定key 对应的 value。
  • GETRANGE key start end: 获取指定 key 対的 value 中心 start 到 end 的子串。
  • GETSET key value: 指定 key 设置新的 value,非返回原来的 value。
  • MGET key [key .]:返回一个(或多个)指定key 对应的 value。
  • SETEX key seconds value:设置key-value 对,并设置过期时间为 seconds 秒。
  • SETNX key value: SET 的安全版本,只有当key 不存在时才能设置该key-value 对。
  • SETRANGE key offset value: 设置和覆盖指定key对应的 value,从原有 value 的 offset 个字符开始;如果key 不存在,则将前 offset 个字符设为空 (\N0000)。
  • STRLEN key:获取 key对应的value 的字符串长度。
  • MSET key value rkey value…]:设置多个key value对。
  • MSETNX key value Tkey value…]: MSET 的安全版本,仅当所有key 都不存在时才能设置 成功。
  • PSETEX key milliseconds value: SETEX 的毫秒版本,过期时间以毫秒计算。
  • INCR key:将指定 key 中存储的整数值加 1。
  • INCRBY key increment. 将指定key 中存修的整数値増加、inorement 整数值。
  • INCRBYFLOAT key increment. INCRBY 的平点数版木,incremcnt 可以是小数。
  • DECR Key:将指定 koy 中存储的整数值减1。
  • DECRBY key decrement。将指定key 中存储的整数值少decrement整数值。
  • APPEND key value 在指定key对应的字符串后追加新的value内容

在这里插入图片描述
在这里插入图片描述

4.List命令

List代表有序的集合,可通过命令为List添加或删除元素,List最多可包含232-1个元素。实际上,Redis的List也具有队列的性质,因此它包含了LPUSH LPOP RPUSH RPOP等命令,其中LPUSH LPOP表示从List的左边(队列头部)压入弹出元素;RPUSH RPOP表示从List的右边(队列尾部)压入弹出元素。
与List相关的常用命令如下。
➢ LINDEX key index:获取key对应的List的index处的元素。
➢ LINSERT key BEFORE|AFTER pivot value:在key对应的List的pivot元素之前或之后插入新的value元素。
➢ LLEN key:返回key对应的List的长度。
➢ LPOP key:弹出并返回key对应的List的第一个元素。
➢ LPUSH key value [value…]:向key对应的List的左边(队列头部)添加一个或多个元素。
➢ LPUSHX key value:LPUSH的安全版本,仅当key对应的List存在时有效。
➢ LRANGE key start stop:获取key对应的List中从start到stop范围内的元素。
➢ LREM key count value:从key对应的value中删除count个value元素。如果count大于0,则从左向右删除count个元素;如果count小于0,则从右向左删除count个元素;如果count等于0,则删除所有元素。
➢ LSET key index value:将key对应的List的index处的元素改为value。
➢ LTRIM key start stop:修剪List,只保留key对应的List中从start到stop之间的元素。
➢ RPOP key:弹出并返回key对应的List的最后一个元素。
➢ RPOPLPUSH source destination:弹出source的最后一个元素,添加到destination的左边(队列头部),并返回该元素。
➢ RPUSH key value [value…]:向key对应的List的右边(队列尾部)添加一个或多个元素。
➢ RPUSHX key value:RPUSH的安全版本,仅当key对应的List存在时有效。
➢ BLPOP key [key…] timeout:LPOP的阻塞版本。弹出并返回多个List的第一个元素,如果某个List没有元素,该命令会阻塞进
程,直到所有List都有元素弹出或超时。该命令的B代表Block。
➢ BRPOP key [key] timeout:RPOP的阻塞版本。弹出并返回多个List的最后一个元素,如果某个List没有元素,该命令会阻塞进
程,直到所有List都有元素弹出或超时。
➢ BRPOPLPUSH source destination timeout:RPOPLPUSH的阻塞版本,如果source中没有元素,该命令会阻塞进程,直到source有元
素弹出或超时。
在这里插入图片描述
在这里插入图片描述

5.Set命令

Set代表无序元素不能重复的集合,因此Set中的元素都是唯一的。Set最多可包含232-1个元素。Set底层其实是通过Hash表实现的,
因此它的删除查找的复杂度都是O(1),性能很好。
与Set相关的常用命令如下。
➢ SADD key member [member…]:向key对应的Set中添加一个
或多个元素。
➢ SCARD key:返回key对应的Set中元素的个数。
➢ SDIFF key [key…]:计算多个Set之间的差值。
➢ SDIFFSTORE destination key [key…]:SDIFF的存储版本,将多个Set之间的差值保存到destination中。
➢ SINTER key [key…]:返回给定Set的交集。
➢ SINTERSTORE destination key [key…]:SINTER的存储版本,将给定Set的交集保存到destination中。
➢ SISMEMBER key member:判断member是否为key对应的Set的元素。
➢ SMEMBERS key:返回key对应的Set的全部元素。
➢ SMOVE source destination member:将source中的member元素移到destination中。
➢ SPOP key:弹出key对应的Set中随机的一个元素。
➢ SRANDMEMBER key [count]:返回key对应的Set中随机的count个元素(不删除元素)。
➢ SREM key member [member…]:删除key对应的Set中的一个或多个元素。
➢ SUNION key [key…]:计算给定Set的并集。
➢ SUNIONSTORE destination key [key…]:SUNION的存储版本,将给定Set的并集保存到destination中。
在这里插入图片描述

6.ZSet命令

ZSet相当于Set 的增强版,它会为每个元素都分配一个double类型的score(分数),并按该score对集合中元素进行排序。
ZSet集合中的元素不允许重复,但元素的score是可以重复的。
与ZSet相关的常用命令如下。
➢ ZADD key score member [score member…]:向ZSet中添加一个或多个元素,或者更新已有元素的score。
➢ ZCARD key:返回key对应的ZSet中元素的个数。
➢ ZCOUNT key min max:返回ZSet中score位于min和max之间的元素个数。
➢ ZDIFF numkeys key [key…] [WITHSCORES]:计算给定ZSet之间的差值。该命令在Redis 6.2及更新版本中才可用。
➢ ZDIFFSTORE destination numkeys key [key…]:ZDIFF的存储版本,将给定ZSet之间的差值保存到destination中。该命令在Redi
s 6.2及更新版本中才可用。
➢ ZINCRBY key increment member:将memeber元素的score增加increment。
➢ ZINTER numkeys key [key…]:计算给定ZSet的交集。该命令在Redis 6.2及更新版本中才可用。
➢ ZINTERSTORE destination numkeys key [key…]:ZINTER的存储版本,将给定ZSet的交集保存到destination中。交集中元素的sc
ore是相同元素的score之和。
➢ ZLEXCOUNT key min max:返回ZSet中按字典排序时从min到max之间所有元素的个数。
提示:
当向ZSet中添加多个score相等的元素时,ZSet就会使用字典顺序
(英文字典中字母的排序方式)对这些元素进行排序,此时就可按字
典顺序来获取指定范围内元素的个数。
➢ ZPOPMAX key [count]:弹出ZSet中score最大的元素。
➢ BZPOPMAX key [key…] timeout:ZPOPMAX的阻塞版本。该命令会阻塞进程,直到指定ZSet有元素弹出或超时。
➢ ZPOPMIN key [count]:弹出ZSet中score最小的元素。
➢ BZPOPMIN key [key…] timeout:ZPOPMIN的阻塞版本。该命令会阻塞进程,直到指定ZSet有元素弹出或超时。
➢ ZRANGE key start stop [WITHSCORES]:返回ZSet中从start索引到stop索引范围内的元素(及score)。索引支持负数,负数表示
从最后面开始,比如-1代表最后一个元素。
➢ ZRANGEBYLEX key min max [LIMIT offset count]:返回ZSet
中按字典排序时从min到max之间的所有元素。
➢ ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]:返回ZSet中score位于min和max之间的所有元素。
➢ ZRANK key member:返回ZSet中指定元素的索引。score最小的元素的索引是0。
➢ ZREM key member [member…]:删除ZSet中一个或多个元素。
➢ ZREMRANGEBYLEX key min max:删除ZSet中按字典排序时从min到max之间的所有元素。
➢ ZREMRANGEBYRANK key start stop:删除ZSet中从start索引到stop索引之间的所有元素。
➢ ZREMRANGEBYSCORE key min max:删除ZSet中score位于min和max之间的所有元素。
➢ ZREVRANGE key start stop [WITHSCORES]:ZRANGE的反向版本。
➢ ZREVRANGEBYLEX key max min [LIMIT offset count]:ZRANGEBYLEX的反向版本。
➢ ZREVRANGEBYSCORE key max min [WITHSCORES]:ZRANGEBYSCORE的反向版本。
➢ ZREVRANK key member:ZRANK的反向版本。score最大的元素的反向索引是0。
➢ ZSCORE key member:获取指定元素的score。
➢ ZUNION numkeys key [key…]:计算给定ZSet的并集。该命令在Redis 6.2及更新版本中才可用。
➢ ZUNIONSTORE destination numkeys key [key…]:ZUNION的存储版本,将给定ZSet的并集保存到destination中。
➢ ZMSCORE key member [member…]:获取多个元素的score。该命令在Redis 6.2及更新版本中才可用。
在这里插入图片描述在这里插入图片描述

7.Hash相关命令

Hash类型是一个key和value都是String类型的key-value对。Hash类型适合存储对象。每个Hash最多可存储232-1个key-value对。
与Hash相关的常用命令如下。
➢ HDEL key field [field…]:删除Hash对象中一个或多个key-value对。此处的field参数其实代表Hash对象中的key,后面提到的f
ield参数皆如此。
➢ HEXISTS key field:判断Hash对象中指定的key是否存在。
➢ HGET key field:获取Hash对象中指定key对应的value。
➢ HGETALL key:获取Hash对象中所有的key-value对。
➢ HINCRBY key field increment:为Hash对象中指定的key增加increment。
➢ HINCRBYFLOAT key field increment:HINCRBY的浮点数版本,支持小数。
➢ HKEYS key:获取Hash对象中所有的key。
➢ HLEN key:获取Hash对象中key-value对的数量。
➢ HMGET key field [field…]:HGET的加强版,可同时获取多个key对应的value。
➢ HSET key field value:为Hash对象设置一个key-value对。如果field对应的key已经存在,新设置的value将会覆盖原有的value。
➢ HMSET key field value [field value…]:HSET的加强版,可同时设置多个key-value对。
➢ HSETNX key field value:HSET的安全版本,只有当field对应的key不存在时,才能设置成功。
➢ HSTRLEN key field:获取Hash对象中指定key对应的value的字符串长度。
➢ HVALS key:获取Hash对象中所有的value。
在这里插入图片描述

8.事务相关命令

Redis事务保证事务内的多条命令会按顺序作为整体执行,其他客户端发出的请求绝不可能被插入到事务处理的中间,这样可以保证事
务内所有的命令作为一个隔离操作被执行。Redis事务同样具有原子性,事务内所有的命令要么全部被执行,要么全部被放弃。比如Redis在事务执行过程中遇到数据库宕机,假如事务已经执行了一半的命令,Redis将会自动回滚这些已经执行过的命令。注意某条命令执行出现错误并不会影响事务的提交。
与事务相关的常用命令如下。
➢ DISCARD:取消事务,放弃执行事务块内的所有命令。
➢ EXEC:执行事务。
➢ MULTI:开启事务。
➢ WATCH key [key…]:监视一个或多个key,如果在事务执行
之前这些key对应的值被其他命令改动,事务会自动中断。
➢ UNWATCH:取消WATCH命令对所有key的监视。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue [Day4]

组件的三大组成部分 组件的样式冲突 scoped <style scoped></style>data 是一个函数 components/BaseButton.vue <template><div class"BaseButton"><button click"count--">-</button><span>{{ count }}</…

软件外包开发的GO语言特点

Go语言&#xff08;也称为Golang&#xff09;是由Google开发的一种编程语言。它具有许多特点&#xff0c;使其成为许多项目范围的优秀选择。Go语言适用于需要高性能、并发和简洁易读的项目&#xff0c;特别是面向网络和分布式应用的项目。今天和大家分享项目的特点及适用的项目…

【深度学习环境】安装anaconda、tensorflow、pycharm

目录 1.安装anaconda 2.安装tensorflow-gpu 3.安装pycharm 4.VNC操作 5.安装Pytorch PS: linux下常见的操作&#xff1a; 1.Linux下强制关闭程序&#xff1a; 2.导出环境 2.1.pip导出 2.2.conda导出 2.3.其他 3.windows下的环境安装 & pycharm远程配置 4.bash…

postman和jmeter的区别何在?

小伙伴们大家好呀&#xff0c;前段时间笔者做了一个小调查&#xff0c;发现软件测试行业做功能测试和接口测试的人相对比较多。在测试工作中&#xff0c;有高手&#xff0c;自然也会有小白&#xff0c;但有一点我们无法否认&#xff0c;就是每一个高手都是从小白开始的&#xf…

BS框架说明

B/S架构 1.B/S框架&#xff0c;意思是前端&#xff08;Browser 浏览器&#xff0c;小程序、app、自己写的&#xff09;和服务器端&#xff08;Server&#xff09;组成的系统的框架结构 2.B/S框架&#xff0c;也可理解为web架构&#xff0c;包含前端、后端、数据库三大组成部分…

数据可视化(七)常用图表的绘制

1. #seaborn绘制常用图表 #折线图 #replot&#xff08;x&#xff0c;y&#xff0c;kind&#xff0c;data&#xff09; #lineplot&#xff08;x&#xff0c;y&#xff0c;data&#xff09; #直方图 #displot&#xff08;data&#xff0c;rug&#xff09; #条形图 #barplot&…

测试老鸟总结,性能测试需求分析-性能必要性,一篇打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试需求分析…

基于react-native的简单消息确认框showModel

基于react-native的简单消息确认框showModel 效果示例图组件代码ShowModel/index.jsx使用案例device.js安装线性渐变色 效果示例图 组件代码ShowModel/index.jsx import React, {forwardRef, useImperativeHandle, useState} from react; import {View,Text,Modal,TouchableOp…

Babylon.js开发工具链大全

本文介绍Babylon 团队&#xff08;JS 和原生&#xff09;和社区共同创建的所有出色工具的摘要&#xff0c;以帮助开发人员和设计人员创建出色的 3D 体验。 推荐&#xff1a;用 NSDT设计器 快速搭建可编程3D场景。 1、Sandbox 第一个工具Sandbox可能是最简单的&#xff0c;它实…

基于RASC的keil电子时钟制作(瑞萨RA)(8)----按键修改数码管时间

基于RASC的keil电子时钟制作8_按键修改数码管时间 概述硬件准备视频教程配置按键管脚按键设置主程序timer_smg.ctimer_smg.h 概述 前几节课程已经单独驱动了数码管和RTC&#xff0c;同时已经整合成了能够用数码管显示具体时间&#xff0c;但是无法修改时间&#xff0c;这节就来…

web基础与tomcat环境部署

一. 简述静态网页和动态网页的区别。 请求响应信息&#xff0c;发给客户端进行处理&#xff0c;由浏览器进行解析&#xff0c;显示的页面称为静态页面。处理文件类型如.html、jpg、.gif、.mp4、.swf、.avi、.wmv、.flv等 请求响应信息&#xff0c;发给事务端进行处理&#xff0…

信号平滑或移动平均滤波研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

数据库与数据仓库的区别及关系

数据库与数据仓库的区别及关系 数据库数据仓库异同差异联系例子 数据库 数据库是结构化信息或数据的有序集合&#xff0c;一般以电子形式存储在计算机系统中。通常由数据库管理系统 (DBMS) 来控制。它是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集…

【导出Word】如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档(只含文本内容的模板)

这篇文章&#xff0c;主要介绍如何使用JavaFreemarker模板引擎&#xff0c;根据XML模板文件生成Word文档。 目录 一、导出Word文档 1.1、基础知识 1.2、制作模板文件 1.3、代码实现 &#xff08;1&#xff09;引入依赖 &#xff08;2&#xff09;创建Freemarker工具类 &…

VL 模型 Open-Set Domain Adaptation with Visual-Language Foundation Models 论文阅读笔记

Open-Set Domain Adaptation with Visual-Language Foundation Models 论文阅读笔记 一、Abstract 写在前面 又是一周周末&#xff0c;在家的时间感觉过得很快呀。今天没得时间写博客&#xff0c;留下个标题&#xff0c;明天搞完。 论文地址&#xff1a;Open-Set Domain Adapta…

Windows上安装 jdk 环境并配置环境变量 (超详细教程)

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

HDFS中的NAMENODE元数据管理(超详细)

元数据管理 元数据是什么元数据管理概述内存元数据元数据文件fsimage内存镜像文件edits log编辑日志 namenode加载元数据文件顺序 元数据管理相关目录文件元数据相关文件VERSIONseen_txid 元数据文件查看&#xff08;OIV,OEV&#xff09;SecondaryNameNode介绍checkpoint机制SN…

uC-OS2 V2.93 STM32L476 移植:系统启动篇

前言 前两篇已经 通过 STM32CubeMX 搭建了 NUCLEO-L476RG 的 STM32L476RG 的 裸机工程&#xff0c;下载了 uC-OS2 V2.93 的源码&#xff0c;并把 uC-OS2 的源文件加入 Keil MDK5 工程 本篇适配 uC-OS2 的 系统定时器&#xff08;Systick&#xff09;与 PendSV_Handler&#xf…

【C#学习笔记】类型转换

文章目录 类型转换字符转数字GetNumericValueConvert.ToInt32隐式转换计算 字符串转数字Parse 或 TryParse 方法 字节数组转整数 as&#xff0c;is强制类型转换isas 用户定义的转换 类型转换 我们简单地将值类型分为5种&#xff1a;整数型&#xff0c;浮点型&#xff0c;布尔型…

增强型Web安全网关在银行的应用

销售&#xff0c;绝不是降低身份去取悦客户&#xff0c;而是像朋友一样给予合理的建议。你刚好需要&#xff0c;我刚好专业&#xff01;仅此而已&#xff01; 乔.吉拉德 健康的安全体系&#xff0c;还可以更完善 浙江某商业银行股份有限公司是一家成立多年的商业银行&#xf…