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

目录

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合并了


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

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

 

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

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

相关文章

操作系统真象还原:编写硬盘驱动程序

第13章-编写硬盘驱动程序 这是一个网站有所有小节的代码实现,同时也包含了Bochs等文件 13.1 硬盘及分区表 13.1.1 创建从盘及获取安装的磁盘数 要实现文件系统,必须先有个磁盘介质,虽然咱们己经有个虚拟磁盘 hd60M.img,但它只…

党建科普3D数字化展馆支持实时更新迭代

3D虚拟策展逐渐成为新时代下的主流方式,深圳华锐视点作为专业的web3d开发公司,具有专业化的3D数字化空间还原能力,能根据企业/个人不同需求和预算,为您打造纯线上虚拟3D艺术展,让您彻底摆脱实体美术馆的限制&#xff0…

好看的风景视频素材在哪下载啊?下载风景视频素材网站分享

随着短视频和自媒体的兴起,美丽的风景视频不仅能让人眼前一亮,更能吸引大量观众。无论是旅游博主分享那些令人心旷神怡的旅行片段,还是视频编辑师寻找背景素材来增强作品的视觉效果,高质量的风景视频素材需求量巨大。以下是几个下…

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

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

Continual Test-Time Domain Adaptation--论文笔记

论文笔记 资料 1.代码地址 https://github.com/qinenergy/cotta 2.论文地址 https://arxiv.org/abs/2203.13591 3.数据集地址 论文摘要的翻译 TTA的目的是在不使用任何源数据的情况下,将源预先训练的模型适应到目标域。现有的工作主要考虑目标域是静态的情况…

【数据分享】《中国建筑业统计年鉴》2005-2022 PDF

而今天要免费分享的数据就是2005-2022年间出版的《中国建筑业统计年鉴》并以多格式提供免费下载。(无需分享朋友圈即可获取) 需要2023的数据的请添加小编咨询 数据介绍 在过去的十八个年头中,中国建筑业经历了翻天覆地的变化。从《中国建…

web自动化(三)鼠标操作键盘

selenuim 键盘操作 import timefrom selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait from selen…

windows@无密码的本地用户账户相关问题@仅用用户名免密登录远程桌面登录和控制@无密码用户访问共享文件夹以及挂载问题

文章目录 abstract此用户无法登录账户被禁用问题访问共享文件夹时带上凭据错误案例和解决 两类登录方式控制台登录与远程登录的区别为什么限制空密码账户只允许控制台登录相关安全策略如何修改该策略注意事项 启用允许被免密登录功能使用空密码进行远程桌面连接设置远程桌面链接…

day02-广播机制

广播机制 广播是numpy对不同形状的数组进行数值计算的方式,对数组的算术运算通常在相应的元素上进行 1.如果两个数组a和b形状相同,即满足a.shape b.shape,那么a*b的结果就是a与b数组对应位相乘。这要求维数相同且各维度的长度相同 a np.a…

干货:科技论文写作保姆级攻略

前言:Hello大家好,我是小哥谈。科技论文是报道自然科学研究或技术开发工作成果的论说文章。通常基于概念、判断、推理、证明或反驳等逻辑思维体系,使用实验调研或理论计算等研究手段,按照特定格式撰写完成。 科技论文可以粗略分为…

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

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

Linux系统之玩转SafeLine防火墙应用

Linux系统之玩转SafeLine防火墙应用 一、SafeLine介绍1.1SafeLine简介1.2 SafeLine功能1.3 SafeLine 的工作原理二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、部署SafeLine4.1 安…

Picocli 开发命令行工具

大家有没有想过用Java开发个命令行程序呢?给大家介绍个框架Picocli。 官方文档:https://picocli.info/ 推荐从官方提供的快速入门教程开始:https://picocli.info/quick-guide.html 什么的Picocli Picocli 是一个单文件框架,几乎…

基于Web技术的教育辅助系统设计与实现(SpringBoot MySQL)+文档

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

GNeRF代码复现

https://github.com/quan-meng/gnerf 之前一直去复现这个代码总是文件不存在,我就懒得搞了(实际上是没能力哈哈哈) 最近突然想到这篇论文重新试试复现 一、按步骤创建虚拟环境安装各种依赖等 二、安装好之后下载数据,可以用Blen…

汽车电子工程师入门系列——汽车操作系统架构学习研究-AUTOSAR

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

MySQL高级-MVCC-原理分析(RR级别)

文章目录 1、RR隔离级别下,仅在事务中第一次执行快照读时生成ReadView,后续复用该ReadView2、总结 1、RR隔离级别下,仅在事务中第一次执行快照读时生成ReadView,后续复用该ReadView 而RR 是可重复读,在一个事务中&…

Java后端每日面试题(day2)

目录 Session和Cookie的关系Cookie与Session的区别JWT 由哪些部分组成?如何防止 JWT 被篡改?JWT 的特点 Session和Cookie的关系 Session和Cookie都可以用来实现跟踪用户状态,而二者是关系的:Session的实现依赖于Cookie。 Session…

字符串知识点

API API和API帮助文档 API:目前是JDK中提供的各种功能的Java类。 这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。 API帮助文档:帮助开发人员更好的使用API和查询API的一个工具。 String概…

Eslint与Prettier搭配使用

目录 前置准备 Eslint配置 Prettier配置 解决冲突 前置准备 首先需要安装对应的插件 然后配置settings.json 点开之后就会进入settings.json文件里,加上这两个配置 // 保存的时候自动格式化 "editor.formatOnSave": true, // 保存的时候使用prettier进…