Redis理解【精细】【快速上手】

news2024/11/20 1:31:26

目录

1. 了解3V和3高

2.什么是redis 

3.  redis可以做什么

4. Windows安装

5. 使用redis客户端操作redis

5.1 redis基本命令

5.1.1 切换数据库

5.1.2 查看当前数据库的大小

5.1.3 查看当前数据库所有的key

                ​​​​​​​  5.1.4 清空当前数据库所有key

5.1.5 清空所有数据库所有key

5.1.6 判断key是否存在当前数据库

5.1.7 移动key到指定数据库

5.1.8 设置key的过期时间

5.1.9 查看key的类型

5.2.0 指定key追加值

5.2.1 删除指定的key

5.2.2 获取字符串key的长度

6. 五大数据类型

6.1 String(字符串)

6.1.0  字符串中的数字增长,减少 就是        【i++】和【i--】

6.1.1 字符串中的数字指定一次增长多少,指定一次减少多少

6.1.2 截取字符串某个范围之间的值

6.1.3 将某一个范围的值替换成新值

6.1.4 设置key值的同时设置过期时间

6.1.5 判断如果key值不存在则设置对应值

6.1.6 一次性设置多个key

6.1.7 一次性获取对一个key值

6.1.8 一次性设置多个key,当key不存在才设置

6.1.9 先获取值,在设置值

7.1 List(列表)

7.1.0 向集合插入值(左插入)

7.1.1 向集合中插入值(右插入)

7.1. 2 移除集合中最左边的值

7.1.3 移除集合中最右边的值

7.1.4 查看集合的长度

7.1.5 移除集合中指定值

7.1.6 保留集合中指定范围的值,移除范围外的值

7.1.7 将当前集合中最后一个值移动到新的集合中

7.1.8 在集合中指定下标替换值

7.1.9 将某个具体值插入到集合中某个值的前面或者后面

8.1 Set(集合)

8.1.1 向set集合中插入值

8.1.2  查看当前set集合中所有值

8.1.3 判断值是否存在set集合中

8.1.4 获取set集合中元素的个数

8.1.5 移除集合中某一个元素

8.1.6 随机获取set集合中某个元素

8.1.7 随机删除集合的元素

8.1.9 将一个指定的值移动到另外一个集合中

 8.2.0 获取一个集合在另一个集合中不存在的值(差集)

8.2.1  获取两个集合中相同的元素 (交集)

8.2.2 获取连个集合中的所有元素,并将相同元素合并成一个(并集)


1. 了解3V和3高

大数据时代的3v:   主要描述问题的

                1. 海量 Volume  海量的数据需要存储

                2. 多样 Variety  存储的东西不同(聊天信息,视频信息,位置信息)

                3. 实时 Velocity 直播的消息需要实时


大数据时代的3高主要是对程序的要求

                1. 高并发

                2. 高拓展

                3. 高性能

2.什么是redis 

redis是远程字典服务,Redis 是一个开源的,使用 C 语言编写的,基于内存的键值对数据库,可以用作非关系型(NoSQL)的数据结构存储系统,缓存和消息中间件

数据库的本质:一个是读取数据,一个是写入数据,而redis就是解决读取数据的弊端

                网站80%都是在读取数据,每次访问都要查询数据库的话就十分麻烦,如果访问量较大,那么查询数据库的速度会变的非常慢,这么多个请求就是高并发,这时候就需要缓存来解决高并发


 为什么要使用redis:

                redis理解成缓存,当我们第一次访问的时候,先查询数据库,在将查询的数据放入缓存中,下次访问的时候就不需要在从数据库查询数据,而是直接从缓存中获取数据,这样解决了数据库的负担


使用redis的好处:

Redis 是一个内存数据库,速度非常快,适合作为缓存来缓解数据库的压力具体来说,使用 Redis 作为缓存的过程如下:

  1. 第一次访问

    • 用户请求数据。
    • 应用程序查询数据库,获取数据。
    • 将获取的数据存储在 Redis 缓存中。
    • 将数据返回给用户。
  2. 后续访问

    • 用户再次请求相同的数据。
    • 应用程序首先检查 Redis 缓存中是否有该数据。
    • 如果缓存中有数据,直接从缓存中获取并返回给用户。
    • 如果缓存中没有数据,再查询数据库,将查询到的数据存储在缓存中,以备下次使用。

通过这种方式,Redis 缓存可以显著减少对数据库的直接查询,提升网站的整体性能和响应速度。

3.  redis可以做什么

        1. 内存存储数据,持久化数据:

                        内存是中是断电即失,所以持久化很重要(rdb,aof机制)


         2. 效率高,可以用于告诉缓存


        3. 可以发布订阅系统


        4. 地图信息分析


        5. 计时器,计数器(浏览量)

4. Windows安装

下载地址:

        https://github.com/tporadowski/redis/releases


redis中文文档:

        redis中文文档

3.1

        下载安装包,并解压

3.2

        打开解压后的文件夹,并启动redis服务

启动成功界面:

3.3

        使用redis客户端连接reids,redis服务一定是要开启的

5. 使用redis客户端操作redis

redis默认有16个数据库,不同的数据库存放不同的数据

5.1 redis基本命令

5.1.1 切换数据库

命令:        select 数字     

                 1.切换到第几个数据库

                 2.我们默认使用的是第0个数据库(0到15个数据库)

5.1.2 查看当前数据库的大小

命令:       dbsize

                1.查看当前数据库的使用的大小

                2.如果我往数据库增加一个key,这个时候大小就为1,如果增加多个key则为你有几个字段大小就是几

                3.数据库的大小是和key的多少来决定的

设置两个key,在查看数据库的大小

5.1.3 查看当前数据库所有的key

命令:         keys * 

                 1.查看当前数据库所有的key

5.1.4 清空当前数据库所有key

命令:                 flushdb

                         1.清空当前数据库所有key

5.1.5 清空所有数据库所有key

命令:                 flushall

                            1.清空所有(0到第15个)数据库所有的key

5.1.6 判断key是否存在当前数据库

命令:                 exists  key名

                          1.如果key存在当前的数据库则返回1,如果key不存在当前的数据库则返回0

5.1.7 移动key到指定数据库

命令:                move key名 第几个数据库

                        1.移动当前数据库存在的key,移动指定的数据库中,移动成功返回1

5.1.8 设置key的过期时间

命令:                expire key名 过期秒数

                           1. 设置当前数据库存在的key的过期时间,过期之后返回-2


查看key还有几秒过期

命令:                   ttl key名

                           1. 查看key过期的时间,过期会返回-2秒

                

5.1.9 查看key的类型

命令:                type key名

                        1. 查看key对应的类型

5.2.0 指定key追加值

命令:                append key名 追加的值

                        1.在指定的key值中继续追加上值

5.2.1 删除指定的key

命令:                del key名

                        1. 删除指定的key

5.2.2 获取字符串key的长度

命令:                strlen key名

                           1.获取你设置key值字符串的长度

记住一些常用的命令就ok,如果需要其他命令去官网找


6. 五大数据类型

6.1 String(字符串)

6.1.0  字符串中的数字增长,减少 就是        【i++】和【i--】

命令:                incr key名

                        1.相当于循环中的i++操作,自身加1,每次执行此命令都加1,注意设置的key值必须是整数类型


命令:                decr key名

                        1. 跟上面相反,这个是循环的 i-- 操作,自身1,每次执行命令都减1

i++ : 

i -- :

6.1.1 字符串中的数字指定一次增长多少,指定一次减少多少

命令:                incrby key名 增长多少的数字

                        1. 指定本身增长多少


命令:              decrby key名  减少多少的数字

                        1. 指定本身减少多少

6.1.2 截取字符串某个范围之间的值

命令:                getrange kye名 截取开始的下标  截取结束的下标

                           1.可以获取字符串的范围值,下标从0开始

                           2.getrange key名 0 -1,如果结束的下标为-1那么就直接拿到所有的字符串

这里写错了,下标是从0开始,h对应的下标是0

6.1.3 将某一个范围的值替换成新值

命令:                setrange key名 从那里开始替换的下标 替换的值

                          1.将一个字符串某一个范围替换成指定值

6.1.4 设置key值的同时设置过期时间

命令: 

        setex key名称 过期时间 key值


例:

        setet name1 30 zhangsan (设置key名为name1,name1的值为zhangsan,30秒过期)

        1.设置的值有失效时间

6.1.5 判断如果key值不存在则设置对应值

命令:

         setnx key名称 key值


例 :

        setnx name2 lisi (当key名为name2不存在的时候设置对应的值为lisi)

        1.当key名不存在的时候才可以设置对应的值

6.1.6 一次性设置多个key

命令:

        mset key1名 key1值 key2名 key2值 key3名 key3值........


例:

        mset name1 zhangsan name2 lisi name3 wangwu name4 zhaoliu

        (设置了4个key,name1对应的值为zhangsan,name2对应的值为lisi,name3对应的值为wangwu,name4对应的值为zhaoliu,一次性设置了多个key,还可以继续设置多个key)

6.1.7 一次性获取对一个key值

命令:

        mget key1名 key2名 key3名 key4名..........


例:

        mget name1 name2 name3 name4 (获取值为zhangsan,lisi,wangwu,zhaoliu)

        1.上面一次性可以设置多个值,这里对应可以一次性获取多个值

6.1.8 一次性设置多个key,当key不存在才设置

命令:

        msetnx key1名 key1值 key2名 key2值 key3名 key3值........


例:

        msetnx name1 zhangsan name2 lisi

        (当name1,name2不存在的时候对应的值才会设置)

        1. 这里保证key不存在的时候才能设置对应的值

        2. 要保证所有的key都不存在,那么设置的值才会成功

        3. 这是一个原子性的操作,要么一起成功,要么一起失败!

6.1.9 先获取值,在设置值

命令:

        getset key名 key值 


例:

        getset name zhangsan (如果name值不存在,则返回nil,在设置值)(如果name值存在,则获取原来的值,并设置新的值)
        1. 先获取原来的值,如果不存在则返回nil,如果存在则返回原来的值,最后设置值


7.1 List(列表)

所有的list命令都是以 【 l 开头的

7.1.0 向集合插入值(左插入)

命令:

        lpush 集合名称 集合值...


例:

        [1] lpush list1 zhangsan  [2] lpush list1 lisi 使用两条命令将值插入集合

        也可以使用一条命令插入多个值 lpush list1 zhangsan lisi  .....


        1. 向list1集合中插入了2个值(zhangsan,lisi)

        2.在集合中存入的值的顺序是 (lisi,zhangsan),先插入的值在集合的最右边,后插入的值在集合的最左边


        3. 使用 lrange 集合名(也就是key名) 0 -1 查看所有值

7.1.1 向集合中插入值(右插入)

命令:

        rpush 集合名称 集合值...


例:

        【1】rpush list1 zhangsan [2] rpush list1 lisi 使用两天命令将值插入结合

          也可以使用一条命令插入多个值rpush list1 zhangsan lisi  ....


        1. 向list1集合中插入了2个值(zhangsan,lisi)

        2. 在集合的顺序是(zhangsan,lisi),先插入的值在集合的最左边,后插入的值在集合的最右边


        3. 使用 lrange 集合名(也就是key名) 0 -1 查看所有值

7.1. 2 移除集合中最左边的值

命令:

        lpop 集合名(也就是key名)


例:

        有一个list1集合中有3个值(zhangsan,lisi,wangwu)


        lpop list1 (将list1最左边的值zhangsan移除了)

        1. 移除list集合中第一个元素也就是最左边的值

7.1.3 移除集合中最右边的值

命令:

        rpop 集合名(也就是key名)


例:

        有一个list1集合中有3个值(zhangsan,lisi,wangwu)

         rpop list1 (将list1最右边的值wangwu移除了)


        1. 移除list集合中最后一个元素也就是最右边的值

7.1.4 通过下标获取集合中某一个值

命令:

        lindex 集合名(也就是key名) 下标


例:

        有一个list1集合中有3个值(zhangsan,lisi,wangwu)

        lindex list1 0              对应的值为 zhangsna

        lindex list1 1              对应的值为 lisi

        lindex list1 2              对应的值为 wangwu


        下标都是从0 开始的

7.1.4 查看集合的长度

命令:

        llen 集合名(也就是key名)


例:

        有一个list1集合中有3个值(zhangsan,lisi,wangwu)

        llen list1        返回值为3


集合中有多少个值,那么长度就是多大

7.1.5 移除集合中指定值

命令:

        lrem 集合名(也就是key名) 移除的个数 具体值


例:

        有一个list1集合中有3个值(zhangsan,lisi,zhangsan),集合中可以存在相同值

                lrem list1 2 zhangsan             最后集合中只剩lisi


        集合中运行存在相同值,移除指定值的时候,可以指定移除具体哪个值,如果存在多个相同值,可以指定移除几个相同值

7.1.6 保留集合中指定范围的值,移除范围外的值

命令:

        ltrim 集合名(也就是key名) 保留开始的下标 保留结束的下标


        有一个list1集合中有4个值(zhangsan,lisi,wangwu,zhaoliu)

        ltrim list1 1 2        集合中只剩下下标为1和2的lisi,wangwu


只保留指定下标内的值,移除没有指定下标外的值

7.1.7 将当前集合中最后一个值移动到新的集合中

命令:

        rpoplpush 集合名(也就是key名) 新集合名(也就是key名)


例:

        有一个list集合中有3个值(zhangsan,lisi,wangwu)

        rpoplpush list list1        将list集合最后一个值wangwu移动到list1集合中


        将原有的集合中最后一个元素移动到新的集合中,原来的集合中则不保留移除的元素

7.1.8 在集合中指定下标替换值

命令:

        lset  集合名(也就是key名)  第几个下标 具体值


例:

        有一个list集合中有3个值(zhangsan,lisi,wangwu),集合中可以存在相同值

        lset list1 0 zhaoliu         将下标为0的zhangsan替换成了zhaoliu


        使用该命令的前要保证集合存在(或者下标存在)存在,否则设置不成功

7.1.9 将某个具体值插入到集合中某个值的前面或者后面

命令:

        linsert 集合名(也就是key名)  前面还是后面(before或者aftter)   插入位置的值  插入的具体值


例:

       有一个list集合中有3个值(zhangsan,lisi,wangwu)

        linsert list before lisi zhaoliu         在指定lisi前面插入zhaoliu值

        linsert list after lisi wangba            在指定lisi后面插入wangba值


将某个具体的value插入到列表中某个元素的前面或者后面


8.1 Set(集合)

set中的值是不能重复的,set集合是无序不重复集合

8.1.1 向set集合中插入值

命令:

        sadd 集合名(也就是key名) 集合值...


例:

        sadd slist zhangsan

        sadd slist lisi

        sadd slist wangwu

        也可以批量操作(sadd slist zhangsan lisi zhangwu)


插入值不能存在相同值

8.1.2  查看当前set集合中所有值

命令:

        smembers set集合名(也就是key名)


例:   

        有一个slist集合中有3个值(zhangsan,lisi,wangwu)

            smembers slist        返回集合中所有值

8.1.3 判断值是否存在set集合中

命令:

        sismember 集合名(也就是key名) 需要判断的值


例:   

        有一个slist集合中有3个值(zhangsan,lisi,wangwu)

        sismember slist zhangsan        返回1,表示zhangsan存在set集合中


        如果值存在返回1,不存在返回0

8.1.4 获取set集合中元素的个数

命令:

        scard  集合名(也就是key名)


例:   

        有一个slist集合中有3个值(zhangsan,lisi,wangwu)

        scard slist        返回3,slist集合中有3个元素


集合中有多少个值,个数就是几

8.1.5 移除集合中某一个元素

命令:

        srem 集合名(也就是key名) 移除的具体值


 例:   

        有一个slist集合中有3个值(zhangsan,lisi,wangwu)

        srem slist zhangsan         移除了zhangsan这个值

        也可以一次性移除多个值(srem slist zhangsan lisi        移除了zhangsan和lisi这两个值)

8.1.6 随机获取set集合中某个元素

命令:

        srandmember  集合名(也就是key名)  随机获取的个数


 例:   

        有一个slist集合中有3个值(zhangsan,lisi,wangwu)

        srandmember slist        随机获取slist集合中某一个元素,默认不写个数为1个

        srandmember slist 2     随机获取slist集合中2个元素

8.1.7 随机删除集合的元素

命令:

        spop 集合名(也就是key名)  移除几个元素


 例:   

        有一个slist集合中有3个值(zhangsan,lisi,wangwu)

        spop slist        移除slist中随机的一个值,默认不写移除个数则为1个

        spop slist 2     移除slist中随机的2个值

8.1.9 将一个指定的值移动到另外一个集合中

命令:

        smove 原来的集合 新的集合  要移动的指定值  


 例:   

        有一个slist集合中有3个值(zhangsan,lisi,wangwu)

        smove slist slist1 wangwu         将slist集合中的wangwu移动到slist1中


        移动之后原来的集合slist中的wangwu将不在 slist中

 8.2.0 获取一个集合在另一个集合中不存在的值(差集)

命令:

        sdiff  集合1名(也就是key名)  集合2名(也就是key名)


 例:   

        有两个集合,list1集合有(a,b,c)三个元素,list2集合中有(c,d,e)三个元素

        sdiff list1 list2          以list1为参照,判断list1中的元素是在list2中没有的,返回在list2没有的list1元素(a,b),这个叫差集


获取集合中的元素在另一个集合中没有的元素

8.2.1  获取两个集合中相同的元素 (交集)

命令:

        sinter 集合1名(也就是key名)  集合2名(也就是key名)


 例:   

        有两个集合,list1集合有(a,b,c)三个元素,list2集合中有(c,d,e)三个元素

        sinter list1 list2              返回相同元素c


获取集合中的相同的元素

8.2.2 获取连个集合中的所有元素,并将相同元素合并成一个(并集)

命令:

        sunion 集合1名(也就是key名)  集合2名(也就是key名)


例:

        有两个集合,list1集合有(a,b,c)三个元素,list2集合中有(c,d,e)三个元素

        sunion list1 list2         返回的结果是a,b,c,d,e,将相同值c合并了


        将集合中相同值合并成一个值

------------------------------------------------待更新------------------------------------------------------------------------

 

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

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

相关文章

在Linux操作环境下搭建内网源

在修改配置文件之前都应该有备份。 比如在/目录下专门创建一个目录用来储存文件的备份。 1.安装vsftpd软件 首先使用命令yum search ftpd 来查看当前Linux操作系统下是否有ftpd软件。 随后使用yum install vsftpd,来安装vsftpd软件 2.修改vsftpd的配置文件&…

免费最好用的证件照制作软件,一键换底+老照片修复+图片动漫化,吊打付费!

这款软件真的是阿星用过的,最好用的证件照制作软件,没有之一! 我是阿星,今天要给大家安利一款超实用的证件照工具,一键换底,自动排版,免费无广告,让你在家就能轻松搞定证件照&#…

CXL-GPU: 全球首款实现百ns以内的低延迟CXL解决方案

数据中心在追求更高性能和更低总拥有成本(TCO)的过程中面临三大主要内存挑战。首先,当前服务器内存层次结构存在局限性。直接连接的DRAM与固态硬盘(SSD)存储之间存在三个数量级的延迟差异。当处理器直接连接的内存容量…

HbuilderX:安卓打包证书.keystore生成与使用

前置条件 已安装jdk或配置好jre环境。 .keystore生成 打开cmd,切换到目标路径,输入以下命令, keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore 输入密钥库口令(要记住), 然后输入一系列信息, …

七大排序算法的深入浅出(java篇)

🍁 个人主页:爱编程的Tom💫 本篇博文收录专栏:Java专栏👉 目前其它专栏:c系列小游戏 c语言系列--万物的开始_ 等等 🎉 欢迎 👍点赞✍评论⭐收藏💖三连支…

面试题 4:阐述以下方法 @classmethod, @staticmethod, @property?

欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

CesiumJS【Basic】- #058 绘制网格填充多边形(Entity方式)-使用shader

文章目录 绘制网格填充多边形(Entity方式)-使用shader1 目标2 代码2.1 main.ts绘制网格填充多边形(Entity方式)-使用shader 1 目标 使用Entity方式绘制绘制网格填充多边形 - 使用shader 2 代码 2.1 main.ts import * as Cesium from cesium;// 创建 Cesium Viewer 实例…

MyBatis踩坑记录-多表关联字段相同,字段数据覆盖问题

MyBatis踩坑记录-多表关联字段相同,字段数据覆盖问题 1. 背景描述2. 实体记录3. 错误映射3.1 造成的影响 4. 解决办法4.1 修改映射文件 5. 修复后的效果5.1 返回的数据5.2 正确展示 7. end ~ 1. 背景描述 现有一下业务,单个任务下可能会有多个子任务&am…

【日记】在街上跳舞被同事看见了(470 字)

正文 昨晚跳舞,照例在街上表演,被单位里的保洁阿姨撞见了…… 我以为这就完了,结果她还拍了视频发给做饭阿姨。晚上吃饭无意间聊起才知道有这回事。我竟一时间不知该哭还是该笑……. 今天非常非常闲。虽然不是没工作,只是我懒得去…

客户端渗透

1.一键可执行程序 2.给程序加壳 3.宏病毒感染文档 4.Android apk 利用 1.一键可执行程序 介绍:我们要进行客户端渗透,我们生成一个可执行程序,也是简单粗暴,MSF建立监听,把它发给受害者,只要受害者点击…

CAN学习笔记

学习链接:CAN学习笔记(1)_can sjw-CSDN博客 内容全部取自链接,非原创。用于自己学习和记录,如有错误请指正。如果侵权了,请联系我删掉。 CAN主要有两种物理层,1.闭环的ISO11898 2.开环的ISO1…

Django学习第三天

python manage.py runserver 使用以上的命令启动项目 实现新建用户数据功能 views.py文件代码 from django.shortcuts import render, redirect from app01 import models# Create your views here. def depart_list(request):""" 部门列表 ""&qu…

【JVM-05】Java内存区域(运行时数据区)、对象创建过程、内存布局

【JVM-05】Java内存区域即运行时数据区、对象创建过程、内存布局 1. 介绍下Java内存区域(运行时数据区)1.1 程序计数器(线程私有)1.2 虚拟机栈(线程私有)1.3 本地方法栈(线程私有)1.4 Java堆(线程共享)1.5 方法区(线程共享)1.5.1 方法区和永久代的关系1.5.2 常用参数1.5.3 为什…

2024年上半年典型网络攻击事件汇总

文章目录 前言一、Ivanti VPN 的0 Day攻击(2024年1月)二、微软公司高管账户泄露攻击(2024年1月)三、Change Healthcare网络攻击(2024年2月)四、ConnectWise ScreenConnect漏洞利用攻击(2024年2月)五、XZ Utils软件供应链攻击(2024年3月)六、AT&T数据泄露攻击(20…

软件系统测试的内容和流程大揭秘,如何获取系统测试报告?

软件系统测试是指对软件系统的功能、性能、安全等方面进行验证和确认的过程。它是软件开发过程中至关重要的一环,通过测试可以发现并修复软件中存在的缺陷和问题,确保软件的质量和可靠性。在当前日益竞争激烈的市场环境下,软件系统测试显得尤…

你想活出怎样的人生?

hi~好久不见,距离上次发文隔了有段时间了,这段时间,我是裸辞去感受了一下前端市场的水深火热,那么这次咱们不聊技术,就说一说最近这段时间的经历和一些感触吧。 先说一下自己的个人情况,目前做前端四年&am…

朋友圈运营必备!一键转发和自动转发轻松搞定!

你还在手动发布多个微信号的朋友圈吗? 现在,就教你一招,让你轻松实现一键转发和自动转发朋友圈! 首先,我们需要在个微管理系统上登录自己的微信号,以便进行统一管理。这个系统可以多个微信号同时登录&…

C++初学者指南-3.自定义类型(第一部分)-异常

C初学者指南-3.自定义类型(第一部分)-异常 文章目录 C初学者指南-3.自定义类型(第一部分)-异常简介什么是异常?第一个示例用途:报告违反规则的行为异常的替代方案标准库异常处理 问题和保证资源泄露使用 RAII 避免内存泄漏!析构函数:不要让异…

elementui中@click短时间内多次触发,@click重复点击,做不允许重复点击处理

click快速点击&#xff0c;发生多次触发 2.代码示例&#xff1a; //html<el-button :loading"submitLoading" type"primary" click"submitForm">确 定</el-button>data() {return {submitLoading:false,}}//方法/** 提交按钮 */sub…

【UE5.3】笔记6-创建可自由控制Pawn类

搭建场景 搭建一个场景&#xff1a;包含地板、围墙。可以根据喜好加一些自发光的效果。 增加食物 创建食物蓝图类&#xff0c;在场景里放置一些食物以供我们player去吃掉获取分值。 创建可控制的layer 我们先右键创建一个蓝图继承自pawn类&#xff0c;起名BP_Player&#xf…