【Redis】redis的基本使用

       📝个人主页:五敷有你      

 🔥系列专栏:Redis

⛺️稳中求进,晒太阳

Redis的概述

为什么要有redis?

redis是数据库,mysql也是数据库,redis做缓存的意义就是为了减轻数据库压力

数据库为什么有压力?

数据量大,查询频繁

mysql的查询底层逻辑?

mysql会将索引文件(类似于字典的目录)比如说id是个主键索引,会将所有的id以B+树的形式,存放的内存当中,而redis的查询是直接通过key去查,不用像mysql一样去遍历B+树。

Redis数据结构

Redis是一个key-value的数据库,key一般是String,不过value的类型多种多样

Redis的常用命令

查询命令的方法:

1. 官方文档

Commands | Redis

2. 命令行

help @String

Redis的通用命令

  • KEYS:查看符合模板的所有key ,不建议在生成环境下使用(Redis是单线程的,导致其他的无法使用)

  • DEL:删除一个指定的key

  • EXISTS:判断是否存在

  • EXPIRE:给一个key设置有效期,有效期到期时key会被自动删除

  • TTL:查看一个KEY的剩余有效期(-1为永久有效,单位为s)

String的常见命令

  • SET:添加或者修改已经存在的一个String类型的键值对
  • GET:根据key获取String类型的value
  • MSET:批量添加多个String类型的键值对
  • MGET:根据多个key获取多个String类型的value

  • INCR:让一个整数的key自增1
  • INCRBY:让一个整数的key自增并指定步长
  • INCRBYFLOAT:让一个浮点类型的数字自增,并指定步长

  • SETNX:添加一个String类型的键值对,前提是这个key不存在,否则不执行

  • SETEX:添加一个String类型的键值对,并且指定有效期

Key的结构

Redis的key允许有多个单词形成层级结构,多个单词之间用' : '隔开,格式如下:

项目名:业务名:类型:id

这个格式并非固定,可以根据自己的需求来删除或者添加词条。

例如:

set aqiuo:user:1 '{"id":1,"name":"Rys"}'
set aqiuo:user:2 '{"id":2,"name":"Zy"}'
set aqiuo:product:1 '{"id":2,"name":"Zy"}'

Hash类型

hash类型,又叫散列类型,其value是一个无序字典,类似于java中的hashMap结构

String结构是将对象序列化为JSON字符串后存储,当需要修改对象时很不方便

Hash的常用命令:

  • HSET KEY FIELD VALUE:添加或修改hash类型key的fileld的值

  • HGET key filed: 获取一个hash类型key的fileld的值.

  • HMSET:批量添加多个hash类型key的fileld的值
  • HMGET:批量获取多个hash类型key的field的值
  • HGETALL:获取一个hash类型的key的所有field和value

  • HKEYS:获取一个hash类型的key中所有的field

  • HVALS:获取一个hash类型的key中所有的value

  • HINCRBY:让一个hash类型key的字段值自增并指定步长

  • HSETNX:添加一个hash类型的key的field的值,前提是这个field不存在,否则不执行

LIst类型

Redis的LIst类型与java中的LinkList类似,可以看做是一个双向链表结构。既可以支持正向检索,也可以反向检索

特征:

  • 有序
  • 元素可以重复
  • 插入和删除块
  • 查询速度一般.

List的常见命令:

  • LPUSH key element...:向列表左侧插入一个或多个元素

  • LPOP key:移除并返回列表左侧的第一个元素,没有则返回nil(真就自己弹出来,内容就没了)
  • RPUSH key element:向列表右侧插入一个或多个元素
  • RPOP key:移除并返回右侧的第一个元素
  • LRANGE key star end:返回一段角标范围内的所有元素

  • BLPOP和BRPOP:与LPOP和RPOP类似,只不过在没有元素时等待指定时间,而不是直接返回nil

Set类型

Redis的set结构与java中的HashSet类似,可以看做是一个value为null的hashMap.

特征:

  1. 无序
  2. 元素不可重复
  3. 查找快
  4. 支持交集 并集 差集

常见命令

  • SADD key member ...:向set中添加一个或多个元素
  • SREM key member ...:移除set中指定元素
  • SCARD key: 返回set中元素的个数
  • SISMEMBER key member:判断一个元素是否存在于set中
  • SMEMBERS key:获取set中的所有元素
  • SINTER key1 key2...:求key1与key2的交集
  • SDIFF key1 key2 ...:求key1与key2的差集
  • SUNION key1 key2 ...:求key1和key2的并集

SortedSet类型

SortedSet是一个可排序的set集合,与java中的TreeSet有些类似。但底层数据结构差别很大,SortedSet中的每一个元素都带有一个score属性,可以基于score属性对元素进行排序。底层实现是一个跳表加hash表。

特征:

  1. 可排序
  2. 元素不重复
  3. 查询速度快

因为SortedSet的可排序特性,经常实现排行榜这样的功能

常见函数:

  • ZADD KEY score member:添加一个或多个元素到sorted set,如果已经存在则更新其score值。
  • ZREM key member:删除sorted set中的一个指定元素
  • ZSCORE key member:获取sorted set中的指定元素的score值
  • ZRANK key member:获取sorted set 中的指定元素的排名
  • ZCARD key:获取sorted set中元素个数
  • ZCOUNT key min max:统计score值在给定范围内元素的个数
  • ZINCRBY key increment member:让sorted set中的指定元素自增,步长为指定的increment值
  • ZRANGE key min max:按照score排序后,获取指定排名范围内的元素
  • ZRANGEBYSCORE key min max:按照score排序后,获取指定score范围内的元素
  • ZDIFF,ZINTER,ZUNION:求差集,交集,并集

注意:所有的排名都是默认升序,如果要降序,则在命令Z后面添加REV即可

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

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

相关文章

微信公众号公司主体变更怎么办?

公众号迁移的好处有哪些?迁移后原公众号还能用吗?1)获得更多权限功能如果公众号是个人主体,想进行认证,拥有更多权限功能。例如菜单栏跳转外部链接,相拥有留言功能,服务号认证获得开发权限等。就…

平台总线式驱动开发

一、总线、设备、驱动 硬编码式的驱动开发带来的问题: 垃圾代码太多 结构不清晰 一些统一设备功能难以支持 开发效率低下 1.1 初期解决思路:设备和驱动分离 struct device来表示一个具体设备,主要提供具体设备相关的资源(如…

openEuler系统远程SSH远程连接

文章目录 1. 本地SSH连接测试2. openEuler安装Cpolar3. 配置 SSH公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 欧拉操作系统(openEuler, 简称“欧拉”)是面向数字基础设施的操作系统,支持服务器、云计算、边缘openEuler是面向数字基础设施的操作系…

基于51单片机的心率体温检测系统设计

目 录 摘 要 I Abstract II 引 言 1 1 控制系统设计 2 1.1 主控系统方案设计 2 1.2 脉搏传感器方案设计 3 1.3 系统工作原理 5 2 硬件设计 6 2.1 主电路 6 2.1.1 单片机的选择 6 2.1.2 STC89C51的主要功能及性能参数 6 2.1.3 STC89C51单片机引脚说明 6 2.2 驱动电路 8 2.2.1 比…

第八篇 - 预测受众(Predictive audience)技术是如何赋能数字化营销生态的?- 我为什么要翻译介绍美国人工智能科技巨头IAB公司

IAB平台,使命和功能 IAB成立于1996年,总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司,互动广告局(IAB- the Interactive Advertising Bureau)自1996年成立以来,先后为700多家媒…

基于springboot+vue的政府管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

2024BAT大厂Android社招面试题,OMG,学它

开头 中国互联网发展的这些年,如今90后程序员是中国程序员的主力军,互联网的热潮也让一批批00后蠢蠢欲动,尝试涌入互联网圈。 当程序员容易,当一个优秀的程序员需要不断学习,从初级程序员到高级程序员,从…

【NR 定位】3GPP NR Positioning 5G定位标准解读(三)

目录 前言 5 NG-RAN UE定位架构 5.1 架构 5.2 UE定位操作 5.3 NG-RAN定位操作 5.3.1 通用NG-RAN定位操作 5.3.2 OTDOA定位支持 5.3.3 广播辅助信息支持 5.3.4 NR RAT相关定位支持 5.4 NG-RAN中与UE定位相关的元素功能描述 5.4.1 用户设备(UE) …

蓝桥杯嵌入式省赛模板构建——测量两路频率和占空比

结合测量一路PWM频率编程 测量占空比:测量高电平持续时间和周期 思路: ①.第一次上升沿中断,清零计数器,开始计时并改成下降沿中断 ②.下降沿中断,获取计数值T1,并改为上升沿中断 ③.第二次上升沿中断…

小猫挑食不吃猫粮是为什么?排行榜靠前适口性好的生骨肉冻干分享

现在的猫咪主人都把自家的小猫当成了心头的宝贝,呵护备至。但宠爱过度有时会导致猫咪形成挑食的坏习惯。小猫挑食不吃猫粮是为什么呢?面对这一问题,我们应该如何解决呢? 今天,我给大家剖析一下小猫挑食不吃猫粮是为什…

青少年软件编程图形化编程等级考试二级模拟测试

青少年软件编程图形化编程等级考试二级模拟测试 第 1 题 【单选题】 下面积木块的执行结果是?( ) A :香蕉苹果 B :香蕉和苹果 C :香苹 D :香果 正确答案:D 试题解析: 第 2 题 【单选题】 执行下面的指令后, 舞台上的小…

ActivityRecordInputSink深入剖析全网独家分析

背景: 学员粉丝朋友们在学习马哥的android framework实战高级课程时候,有一些细心的学员提出了一个无问题,那就是再看dumpsys SurfaceFlinger的图层或者是dumpsys input相关信息时候发现了一个叫做ActivityRecordInputSink的图层。 如下图所…

OWASP Top 10 网络安全10大漏洞——A02:A02:2021-加密机制失效

10大Web应用程序安全风险 2021年top10中有三个新类别、四个类别的命名和范围变化,以及一些合并。 A02:A02:2021-加密机制失效 上升一个位置,当前top2,以前称为敏感数据泄露,是一种状况而不是根本原因。更新后的类别…

MacOS开发环境搭建

MacOS开发环境搭建 一、MacOS二、Python三、MacOS搭建Python开发环境1.Python下载地址1.1 Python官网地址1.2 Python下载地址 2.安装Python3.安装Python4.安装PyCharm5.创建一个Python项目6.配置PyCharm7.安装Python包8.运行Python代码9.总结 一、MacOS macOS是一套由苹果开发的…

2024京东Java面试真题解析,每次面试必问的二叉树的设计与编码

一、背景 我们日常在电商网站购物时经常会遇到一些高并发的场景,例如电商 App 上经常出现的秒杀活动、限量优惠券抢购,还有我们去哪儿网的火车票抢票系统等,这些场景有一个共同特点就是访问量激增,虽然在系统设计时会通过限流、异…

前面说什么是前后端分类,那到底是怎么个分类法呢?

前后端分离是指将一个web 系统的动态内容和静态内容进行分离,包括其开发、部署等。 比如传统的 MVC 架构,HTML、JS、CSS… 等前端代码和 Java、spring、mybatis… 等后端代码是在同一个项目中进行开发、部署的。那前后端分离后,就可以分多个项…

学习vue3使用在线官方开发环境play.vuejs.org进行测试

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址: http://122.227.135.243:9666 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbach…

C++ STL自定义排序

更具体的看【速记】C STL自定义排序 - 知乎 (zhihu.com) sort sort第三个位置放的greater<int>和less<int>萌新可能会弄错&#xff0c;这两个单词不是更大和更小的意思&#xff0c;而是大于和小于&#xff0c;并且比较就是自定义排序中的前者和后者。 如果是less…

如何使用DS file+cpolar内网穿透实现远程访问本地群晖NAS传输文件

文章目录 1. 群晖安装Cpolar2. 创建TCP公网地址3. 远程访问群晖文件4. 固定TCP公网地址5. 固定TCP地址连接 DS file 是一个由群晖公司开发的文件管理应用程序&#xff0c;主要用于浏览、访问和管理存储在群晖NAS&#xff08;网络附加存储&#xff09;中的文件。这个应用程序具有…

【BUG】Windows状态栏总卡死解决办法

屋漏偏逢连夜雨&#xff0c;正在赶deadline呢&#xff0c;Windows状态老卡死&#xff0c;一时间崩溃。 解决办法&#xff1a; 右键状态栏新闻和咨询关掉 这个烧笔新闻与资讯我真服了