当前位置: 首页 > news >正文

Redis数据类型(list\set\zset)

"maybe it's why" 


List类型 

        列表类型是⽤来存储多个有序的字符串,列表中的每个字符串称为元素(element),⼀个列表最多可以存储个2^32 - 1个元素。在Redis中,可以对列表两端插⼊(push)和弹出(pop),还可以获取指定范围的元素列表、获取指定索引下标的元素等。列表是⼀种⽐较灵活的数据结构,它可以充当栈和队列的⻆⾊,在实际开发上有很多应⽤场景。

如何理解List有序?        

        有序的意思是要根据上下文来理解,比如,有序有时候是在谈它是升序或者是降序。而List的有序则是在谈其内部元素的"顺序",如果两个List中所含的元素、个数都是一样,但是元素内部里的顺序位置是不同的,那么这两个List不是同一个。

(1)  LPUSH\LPUSHX

        将⼀个或者多个元素从左侧放⼊(头插)到list中。

        在key存在时,将⼀个或者多个元素从左侧放⼊(头插)到list中。不存在,直接返回。 

(2) RPUSH\RPUSHX 

        将⼀个或者多个元素从右侧放⼊(尾插)到list中。

        在key存在时,将⼀个或者多个元素从右侧放⼊(尾插)到list中。尾插效果同头插差不多,这里也就不做什么演示了。

(3) LPOP\RPOP         

        从list左侧取出元素(即头删)。

        从list右侧取出元素(即尾删)。

(4) LINDEX

        获取从左数第index位置的元素。  

(5) LINSERT\LLEN

        在特定位置插⼊元素,可以携带选项<Before\After>选择插入在指定位置的后还是前。

        获取list⻓度。

(6) LREM \ LTRIM\ LSET

 

        保留指定区间,区间以外的全部删除。

        根据下标,更改元素。

(7) LRANGE 

        获取从start到end区间的所有元素,左闭右闭。

我们来谈谈越界访问?

         如果我们用LRANGE,写出如下的命令,会发生什么?

        显然,此时的end下标已经远远超过了list包含元素的个数,但是在redis的处理之中并没有报错,而是调整为获取适当范围的元素。 

(8) List与消息队列 

        因为List支持高效的头插头删、尾插尾删,所以List既可以当做一个栈,又可以当做一个队列使用。在Stream类型没有出来之前,Redis有一个典型的应用场景,就是把List作为消息队列。

BLPOP\BRPOP

        blpop和brpop是lpop和rpop的阻塞版本,和对应⾮阻塞版本的作⽤基本⼀致。

● 在列表中有元素的情况下,阻塞和⾮阻塞表现是⼀致的。但如果列表中没有元素,⾮阻塞版本会理解返回nil,但阻塞版本会根据timeout,阻塞⼀段时间,期间其余redis-cli可以执⾏其他命令,但要求执⾏该命令的客⼾端会表现为阻塞状态。

● 命令中如果设置了多个键,那么会从左向右进⾏遍历键,⼀旦有⼀个键对应的列表中可以弹出元
素,命令⽴即返回。

● 如果多个客⼾端同时多⼀个键执⾏pop,则最先执⾏命令的客⼾端会得到弹出的元素。

针对多个key进行操作:

         虽然List的这俩阻塞命令可以用来作为 “消息队列”,但它俩的功能实在有限,多少有点力不从心。  

List命令小结:

操作类型命令时间复杂度
添加rpush key value [value...]O(k),k为元素个数
lpush key value [value...]O(k),k为元素个数
linsert key <before/after> pivot valueO(k),k为pivot距离头尾的距离
查找lrange key start endO(s+n),s为start偏移量,n为start,end的范围
lindex key indexO(n),n是索引偏移量
llen keyO(1)
删除lpop\rpop keyO(1)
lrem key count valueO(k),k为元素个数
ltrim key start endO(k),k为元素个数
修改lset key index valueO(n),n是索引偏移量
阻塞操作blpop/brpopO(1)

 List的内部编码:

        列表类型的内部编码有两种:

• ziplist:作为列表的内部编码实现来减少内存消耗。
• linkedlist:当列表类型⽆法满⾜ziplist的条件时,Redis会使⽤linkedlist作为列表的内部实现。

        现如今,List底层的编码都是quicklist。

List使用场景

① 微博Timeline

        每个⽤⼾都有属于⾃⼰的Timeline(微博列表),现需要分⻚展⽰⽂章列表。此时可以考虑使⽤列表,因为列表不但是有序的,同时⽀持按照索引范围获取元素。
        

● 每篇微博使⽤哈希结构存储,例如微博中3个属性:title、timestamp、content:

hmset mblog:1 title xx timestamp 1476536196 content xxxxx
hmset mblog:2 title xx timestamp 1476536196 content xxxxx
......
hmset mblog:n title xx timestamp 1476536196 content xxxxx

● 向⽤⼾Timeline添加微博,user:<uid>:mblogs作为微博的键:

lpush user:1 :mblogs mblog:1 mblog:3
...
lpush user:n :mblogs mblog:1 mblog:3

● 分⻚获取⽤⼾的Timeline,例如获取⽤⼾1的前10篇微博:

keylist = lrange user:1:mblogs 0 9
for key in keylist {hgetall key
}


         


Set集合

        集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是,元素之间是⽆序不允许重复。Redis除了⽀持集合内的增删查改操作,同时还⽀持多个集合取交集、并集、差集,合理地使⽤好集合类型,能在实际开发中解决很多问题。
 

(1) SADD\SMEMBERS\SISMEMBER

        将⼀个或者多个元素添加到set中。注意,重复的元素⽆法添加到set中。

        获取⼀个set中的所有元素,注意,元素间的顺序是⽆序的。

        判断⼀个元素在不在set中。

(2) SCARD 

        获取⼀个set的基数(cardinality),即set中的元素个数。

(3) SPOP\SREM        

         从set中删除并返回⼀个或者多个元素。注意,由于set内的元素是⽆序的,所以取出哪个元素实际是未定义⾏为,即可以看作随机的。        

        将指定的元素从set中删除。

(4) SMOVE

        将⼀个元素从源set取出并放⼊⽬标set中。
 

(5) SINTER\SUNION\SDIFF

        Redis中的Set集合也支持求交、求并、求差,这里也就不多说什么是交并差的概念了。

        获取给定set的交集中的元素。
        

        获取给定set的并集中的元素。
        获取给定set的差集中的元素。 

         

(6) SINTERSTORE\SUNIONSTORESDIFFSTORE

        我们上述的一系列操作,仅仅是将求得的结果输出在显示器上。但求这些结果更多的时候是需要被保存的。

        获取给定set的交集中的元素并保存到⽬标set中。

        获取给定set的并集中的元素并保存到⽬标set中。
 

        获取给定set的差集中的元素并保存到⽬标set中。

Set命令小结

命令时间复杂度
sadd key element [ element  ...]O(k),k为元素个数
srem key element [ element  ...]O(k),k为元素个数
scard keyO(1)
sismember key elementO(1)
srandmemeber key [count]O(n),n是count
spop key [count]O(n),n是count
smembers keyO(k),k为元素个数
sinter key [key...]\sinterstoreO(m*k),k为多个集合中元素最小的个数,m是键个数
sunion key [key...]\sunionstoreO(k),k为多个集合的元素总和
sdiff key [key...]\sdiffstoreO(k),k为多个集合的元素总和

Set内部编码

        集合类型的内部编码有两种:
• intset(整数集合):当集合中的元素都是整数并且元素的个数⼩于set-max-intset-entries配置
(默认512个)时,Redis会选⽤intset来作为集合的内部实现,从⽽减少内存的使⽤。
• hashtable(哈希表):当集合类型⽆法满⾜intset的条件时,Redis会使⽤hashtable作为集合
的内部实现。

Set使用场景:

① 标签

        集合类型⽐较典型的使⽤场景是标签(tag)。例如A⽤⼾对娱乐、体育板块⽐较感兴趣,B⽤⼾对历史、新闻⽐较感兴趣,这些兴趣点可以被抽象为标签。许多公司通过用户的这些隐私,对于增强⽤⼾体验和⽤⼾黏度都⾮常有帮助。

        一旦给某些用户打上标签后,通过Set集合的交并差计算,很容易找到两个人的共同爱好等相似的行为。基于这样的标签,衍生出"用户关系",例如谁谁和你有多少个共同好友之类的……

② SetUV

        如何衡量一个互联网产品?那就是看它的用户量。计算用户量的指标有两种方案:
PV: page view 用户每次访问这个服务器,都会产生一个pv,pv_count++。

UV: user view 每个用户访问服务器,产生一个uv,uv_count++,但如果是同一个用户多次请求访问这个服务器,uv则不会增加。

        所以,这个uv的过程自动带有去重的要求,Set集合类型正好可以满足需求。


Zset集合

        所谓的Zset集合本质是什么?其实伙同Set集合差别不大,而是新增了"权值"的概念。

        它保留了集合不能有重复成员的,其中有序集合中的每个元素都有⼀个唯⼀的浮点类型的分数(score)与之关联,使得有序集合中的元素是可以维护有序性的,但这个有序不是⽤下标作为排序依据⽽是⽤这个分数

        比如,我们想给列举一下三国战力standing:
        "一吕二赵三典韦,四关五马六张飞"。

        有序集合提供了获取指定分数和元素范围查找、计算成员排名等功能,合理地利⽤有序集合,可以帮助我们在实际开发中解决很多问题。

 

列表List vs 集合Set vs 有序集合Zset:

数据结构重复元素有序无序有序依据应用场景
列表List索引下标消息队列等
Set标签、社交等
Zset分数score排行榜系统等

Zset命令

ZADD:

        添加或者更新指定的元素以及关联的分数到zset中,分数应该符合double类型。 对于有序集合来说,Mermber里的更不像键值对,而是一组pair,因为它们互相都可以找到对方!      

• XX:仅仅⽤于更新已经存在的元素,不会添加新元素。
• NX:仅⽤于添加新元素,不会更新已经存在的元素。
• CH:默认情况下,ZADD返回的是本次添加的元素个数,但指定这个选项之后,就会还包含本次更
新的元素的个数。
• INCR:此时命令类似ZINCRBY的效果,将元素的分数加上指定的分数。此时只能指定⼀个元素和分数

 

 ZCARD\ZCOUNT:

        获取⼀个zset的基数(cardinality),即zset中的元素个数。

        返回分数在min和max之间的元素个数,默认情况下,min和max都是包含的。

        

ZRANGE\ZREVRANGE\ZRANGEBYSCORE:

        返回指定区间⾥的元素,分数按照升序。带上WITHSCORES可以把分数也返回。

        返回指定区间⾥的元素,分数按照降序。带上WITHSCORES可以把分数也返回。

        返回分数在min和max之间的元素,默认情况下,min和max都是包含的。 

ZPOPMAX\ZPOPMIN:

        删除并返回分数最⾼的count个元素。
        删除并返回分数最低的count个元素。

        其中还有BZPOPMIN\BZPOPMAX这两个命令,这是它们的阻塞版本,也就不再此做过多讲解。         

ZRANK\ZREVRANK:


        返回指定元素的排名,升序。
        返回指定元素的排名,降序。

ZREM:

        删除指定的元素。              


 

 ZINCRBY:

        为指定的元素的关联分数添加指定的分数值。

        为指定的元素的关联分数添加指定的分数,并且会移动元素保证其有序。

ZINTERSTORE\ZUNIONSTORE\ZDIFFSTORE:

        Zset有序集合也有支持交并差的运算。

        求出给定有序集合中元素的交集并保存进⽬标有序集合中,在合并过程中以元素为单位进⾏合并,元素对应的分数按照不同的聚合⽅式和权重得到新的分数。

        求出给定有序集合中元素的并集并保存进⽬标有序集合中,在合并过程中以元素为单位进⾏合并,元素对应的分数按照不同的聚合⽅式和权重得到新的分数。

        求出给定有序集合中元素的差集并保存进⽬标有序集合中,在求差集过程中以元素为单位进⾏合并,元素对应的分数按照不同的聚合⽅式和权重得到新的分数。 

        也许你会疑问,为什么我们很多命令也是支持多个keys,比如说zadd、mget、mset等等,为什么这些命令没有要求写明需要多少个key呢?

        其实你看这些命令的差别就在于,Zset有序集合系列如果不写明key有多少个,有可能会让key和参数搞混淆。

Zset命令小结:

命令时间复杂度
zadd key score member [score member]O(k*log(n)) ,k是添加成员个数,n是当前有序集合元素个数
zcard keyO(1)
zscore key memberO(1)
zrank/zrevrank key member O(log(n)),n是当前有序集合的个数
zrem key member [member...]

O(k*log(n)),k是删除成员的个数,n是当前有序集合的元素个数

zincrby key increment memberO(log(n)),n是当前有序集合的个数
zrange/zrevrange key start end [withsocres]O(k+log(n)),k是删除成员的个数,n是当前有序集合的元素个数
zcountO(log(n)),n是当前有序集合的个数
zremrangebyrank key min maxO(k+log(n)),k获取成员的个数,n是当前有序集合的元素个数 
zremrangebyscore key min maxO(k+log(n)),k获取成员的个数,n是当前有序集合的元素个数 
zinterstore destination numkeys key [key...]

O(n*k) + O(m * log(m)),n是输入的集合中最小的元素个数,

k是集合个数,m是目标集合元素个数

zunion destination numkeys key [key ...]

O(n*k) + O(m * log(m)),n是输入的集合中最小的元素个数,

k是集合个数,m是目标集合元素个数

Zset内部编码:

        有序集合类型的内部编码有两种:

• ziplist:Redis会⽤ziplist来作为有序集合的内部实现,ziplist可以有效减少内存的使⽤。
• skiplist:当ziplist条件不满⾜时,有序集合会使⽤skiplist作为内部实现,因为此时ziplist的操作效率会下降。

        skiplist 是一种复杂链表,它一个节点可能存有多个下个节点的地址。但并非本节要细说的。

ZSet的应用场景:

        Zset有序集合最关键的应用场景无非就是一些排行有关的榜单: 比如说微博热搜、游戏等级排行等等,最关键的要点是,这些数值是可能随时进行变动的,随之而来的排名也会相应进行变化。

        当然,对于游戏排行榜,比如说啥段位、分数、等级十分清晰明了,可是遇到复杂度场景,比如说微博热搜:

 


本篇到此结束,感谢你的阅读。

祝你好运,向阳而生~

相关文章:

Redis数据类型(list\set\zset)

"maybe its why" List类型 列表类型是⽤来存储多个有序的字符串&#xff0c;列表中的每个字符串称为元素&#xff08;element&#xff09;&#xff0c;⼀个列表最多可以存储个2^32 - 1个元素。在Redis中&#xff0c;可以对列表两端插⼊&#xff08;push&#xff09…...

TongWeb安装以及集成

TongWeb 安装步骤 静默安装 获取linux可执行安装包 如: Install_TWx.x.x.x_Enterprise_Linux.bin 创建安装所需配置文件 install.properties 内容如下 [root@node5 tongweb]# cat install.properties INSTALL_UI=silent USER_INSTALL_DIR=/home/tongweb SILENT_JDK_HOME=/jd…...

ScreenToGif-动图制作软件实用操作

ScreenToGif官网&#xff1a;ScreenToGif ⭕第一步&#xff1a;启动页面 ⭕第二步&#xff1a;选项 &#x1f95d;录像机-捕获频率选择手动-播放延迟1000ms(可以任意) ⭕第三步&#xff1a;录像机开始录屏 &#x1f95d;我们调整录屏的大小后&#xff0c;打开画图&#xff0c…...

sqlibs安装及复现

sqlibs安装 安装phpstudy后&#xff0c;到github上获取sqlibs源码 sqli-labs项目地址—Github获取&#xff1a;GitHub - Audi-1/sqli-labs: SQLI labs to test error based, Blind boolean based, Time based. 在phpstudy本地文件中的Apache目录中解压上方下载的源码。 将sq…...

OpenAI 创始人 Sam Altman 博客有一篇 10 年前的文章

OpenAI 创始人 Sam Altman 博客有一篇 10 年前的文章《Advice for ambitious 19 year olds》&#xff0c;给 19 岁年轻人的建议&#xff0c;从 #参考答案 看到&#xff0c;非常适合我们&#x1f923;年轻人&#xff0c;顺便用 GPT4 重新翻译了下全文。 太长不读纯摘要版本如下&…...

写的一款简易的热点词汇记录工具

项目需要对用户提交的附件、文章、搜索框内容等做热词分析。如下图&#xff1a; 公司有大数据团队。本着不麻烦别人就不麻烦别人的原则&#xff0c;写了一款简易的记录工具&#xff0c;原理也简单&#xff0c;手工在业务插入锚点&#xff0c;用分词器分好词&#xff0c;排掉字…...

算法通关村——滑动窗口高频问题

1. 无重复字符的最长子串 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为 3。 1.1 滑动窗口 找到最长字串需要找到字串的首尾位置…...

mybatis源码学习-2-项目结构

写在前面,这里会有很多借鉴的内容,有以下三个原因 本博客只是作为本人学习记录并用以分享,并不是专业的技术型博客笔者是位刚刚开始尝试阅读源码的人,对源码的阅读流程乃至整体架构并不熟悉,观看他人博客可以帮助我快速入门如果只是笔者自己观看,难免会有很多弄不懂乃至理解错误…...

selenium 自动化测试——环境搭建

安装python&#xff0c;并且使用pip命令安装 selenium pip3 install selenium 然后尝试第一次使用selenium 完成一个简单的测试自动化脚本 from selenium import webdriver from selenium.webdriver.common.by import By import timedriver webdriver.Chrome() driver.get(…...

得物一面,场景题问得有点多!

题目来源&#xff1a;https://www.nowcoder.com/discuss/525371909735792640 前文 本期是【捞捞面经】系列文章的第 1 期&#xff0c;持续更新中…。 《捞捞面经》系列正式开始连载啦&#xff0c;据说看了这个系列的朋友都拿到了大厂offer~ 欢迎星标订阅&#xff0c;持续更新…...

Prompt Tuning 和instruct tuning

Prompt Tuning 是啥&#xff1f; prompt的思想是&#xff0c;把下游任务的输入转化为预训练模型的原始任务。 以bert作为举例&#xff0c;假设任务是文本分类。“今天天气很好。”我们想判断一下这句话的情感是正面还是负面 fine-tune的方法是在bert之后接一个head&#xff0…...

springboot 与异步任务,定时任务,邮件任务

异步任务 在Java应用中&#xff0c;绝大多数情况下都是通过同步的方式来实现交互处理的&#xff1b;但是在处理与第三方系统交互的时候&#xff0c;容易造成响应迟缓的情况&#xff0c;之前大部分都是使用多线程来完成此类任务&#xff0c;其实&#xff0c;在Spring 3.x之后&a…...

2022年06月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:小白鼠再排队2 N只小白鼠(1 < N < 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从小到大的顺序输出它们头上帽子的颜色。帽子的颜色用 “red”,“blue”等字符串来表示。不同的小白鼠可…...

【C++】C++11新特性(下)

上篇文章&#xff08;C11的新特性&#xff08;上&#xff09;&#xff09;我们讲述了C11中的部分重要特性。本篇接着上篇文章进行讲解。本篇文章主要进行讲解&#xff1a;完美转发、新类的功能、可变参数模板、lambda 表达式、包装器。希望本篇文章会对你有所帮助。 文章目录 一…...

python内网环境安装第三方包

文章目录 一、问题二、解决方法三、代码实现 一、问题 内网安装第三方包的应用场景&#xff0c;一般是一些需要在没网的环境下进行开发的情况。这些环境一般仅支持本地局域网访问&#xff0c;所以只能在不下载任何第三方包的情况下艰难开发。 二、解决方法 将当前应用依赖的第…...

javaScipt

javaScipt 一、JavaScript简介二、javaScript基础1、输入输出语法2、变量3、常量4、数据类型4.1、数字型 number4.2、字符串类型 string4.3、布尔类型 boolean4.4、未定义类型 undefined4.5、null 空类型4.6、typeof 检测变量数据类型 5、数据类型转换5.1、隐式转换5.2、显示转…...

Linux(实操篇三)

Linux实操篇 Linux(实操篇三)1. 常用基本命令1.7 搜索查找类1.7.1 find查找文件或目录1.7.2 locate快速定位文件路径1.7.3 grep过滤查找及"|"管道符 1.8 压缩和解压类1.8.1 gzip/gunzip压缩1.8.2 zip/unzip压缩1.8.3 tar打包 1.9 磁盘查看和分区类1.9.1 du查看文件和…...

数学之美 — 1

为什么你会想和他人共享那些美丽的事物呢&#xff1f;因为这会让他&#xff08;她&#xff09;感到愉悦&#xff0c;也能让你在分享的过程中重新欣赏一次事物的美。 ——David Blackwell 1、感官之美&#xff0c;对于那些有规律的事物&#xff0c;你可以利用自己的视觉、触觉、…...

python中的global关键字

在Python中&#xff0c;global关键字用于在函数内部声明一个全局变量。默认情况下&#xff0c;函数内部的变量是局部变量&#xff0c;只能在函数内部访问。使用global关键字可以在函数内部创建或修改全局变量&#xff0c;使其在函数外部也可见和修改。 以下是使用global关键字…...

Matlab图像处理-幂次变换

幂次变换 如下图所示的幂次变换函数曲线图&#xff1a; 当γ <1时&#xff0c;效果和对数变换相似&#xff0c;放大暗处细节&#xff0c;压缩亮处细节&#xff0c;随着数值减少&#xff0c;效果越强。 当γ >1时&#xff0c;放大亮处细节&#xff0c;压缩暗处细节&…...

浏览器输入 URL 地址,访问主页的过程

分析&回答 浏览器解析域名&#xff1b;TCP建立连接&#xff1b;浏览器向服务器发送HTTP请求&#xff1b;服务器解析请求并返回HTTP报文&#xff1b;浏览器解析并渲染页面&#xff1b;断开连接。 反思&扩展 域名解析的流程 查找浏览器缓存——我们日常浏览网站时&am…...

每日一学————基本配置和管理

一、交换机的基本配置 配置enable口令、密码和主机名 Switch> (用户执行模式提示符) Switch>enable (进入特权模式) Switch# …...

解决 filezilla 连接服务器失败问题

问题描述&#xff1a; 开始一直用的 XFTP 后来&#xff0c;它变成收费软件了&#xff0c;所以使用filezilla 代替 XFTP 之前用的还好好的&#xff0c;今天突然就报错了&#xff1a;按要求输入相关字段&#xff0c;连接 连接失败&#xff01;&#xff01;&#xff01;o(╥﹏╥…...

如何使用Java进行机器学习?

在Java中进行机器学习&#xff0c;可以使用各种开源机器学习库和框架来实现。以下是一些常用的Java机器学习库&#xff1a; Weka&#xff1a;Weka 是一个非常流行的机器学习库&#xff0c;提供了大量的算法和工具&#xff0c;以及用于数据预处理、特征选择和可视化的功能。 De…...

springsecurity+oauth 分布式认证授权笔记总结12

一 springsecurity实现权限认证的笔记 1.1 springsecurity的作用 springsecurity两大核心功能是认证和授权&#xff0c;通过usernamepasswordAuthenticationFilter进行认证&#xff1b;通过filtersecurityintercepter进行授权。springsecurity其实多个filter过滤链进行过滤。…...

如何在职业生涯中取得成功

工作中让你有强烈情绪波动的事情 在我的工作经历中&#xff0c;有一次让我经历了强烈情绪波动的事件。我曾在一个高压的项目团队中工作&#xff0c;我们需要在极短的时间内完成一个复杂的客户项目。这个项目的截止日期非常紧迫&#xff0c;而项目的规模和要求也一直在不断增加…...

Hive-安装与配置(1)

&#x1f947;&#x1f947;【大数据学习记录篇】-持续更新中~&#x1f947;&#x1f947; 个人主页&#xff1a;beixi 本文章收录于专栏&#xff08;点击传送&#xff09;&#xff1a;【大数据学习】 &#x1f493;&#x1f493;持续更新中&#xff0c;感谢各位前辈朋友们支持…...

链表模拟栈

定义节点 class Node {var num: Int _var next: Node _def this(num: Int) {thisthis.num num}override def toString: String s"num[${this.num}]" }定义方法 class LinkStack {private var head new Node(0)def getHead: Node head//判断是否为空def isEmp…...

MySQL基础篇:数据库概述和部署

SQL 概述 SQL&#xff0c;一般发音为sequel&#xff0c;SQL的全称Structured Query Language)&#xff0c;SQL用来和数据库打交道&#xff0c;完成和数据库的通信&#xff0c;SQL是一套标准。但是每一个数据库都有自己的特性别的数据库没有,当使用这个数据库特性相关的功能,这…...

大数据面试题:MapReduce压缩方式

面试题来源&#xff1a; 《大数据面试题 V4.0》 大数据面试题V3.0&#xff0c;523道题&#xff0c;679页&#xff0c;46w字 可回答&#xff1a;1&#xff09;Hadoop常见的压缩算法有哪些&#xff1f; 问过的一些公司&#xff1a;网易云音乐(2022.11)&#xff0c;阿里(2020.…...

微信扫一扫登录网站如何做/博客seo怎么做

阅读本文大概需要 3 分钟。今天周末&#xff0c;给大家推荐几个工具&#xff0c;不伤脑细胞&#xff0c;据说这些工具都是 985学霸们常用的&#xff0c;get 起来吧。01.创客贴遇到设计需求&#xff0c;选PS&#xff1f;遇到设计需求&#xff0c;还在到处找 PS 安装包么&#xf…...

网站上线后的工作/长沙seo网络营销推广

工作流程引擎 虽然平时多数工作都是后台&#xff0c;但是刚进入公司时还做的web流程。不得不佩服流程很多 今天突然有点对流程的想法&#xff0c;做一下记录&#xff0c; 1.流程精简2.流程可配置可扩展性好3.流程向导傻瓜化(越来越复杂的流程估计记住的人很少,新人接收困难&…...

目前安卓手机哪个最好用/电子商务seo名词解释

一、 上传本地图片显示发生了unsage iframe 的 src 属性是资源 URL 安全上下文&#xff0c;因为不可信源可以在用户不知情的情况下执行某些不安全的操作。DomSanitizer 安全URL脚本访问XSS &#xff1a;是网站 Angular 2 如何保护我们免受 XSS 攻击 Angular 2 中默认将所有输入…...

做基因互作的网站/广告公司推广文案

2019独角兽企业重金招聘Python工程师标准>>> 1、环境说明 系统说明&#xff1a; 操作系统&#xff1a;centos 6.6Hadoop版本&#xff1a;CDH 5.5JDK版本&#xff1a; 1.7.0_67kerberos安装的组件分配&#xff1a; 74作为master节点&#xff0c;其他节点作为slave节点…...

上传文章网站/百度网页收录

什么是事务&#xff1f; 在数据库中,所谓事务是指一组逻辑操作单元即一组sql语句。当这个单元中的一部分操作失败,整个事务回滚&#xff0c;只有全部正确才完成提交。判断事务是否配置成功的关键点在于出现异常时事务是否会回滚 事务四大特性 1、原子性&#xff08;Atomicit…...

苏州网站建设介绍/外贸新手怎样用谷歌找客户

1. 机器学习流程简介 1&#xff09;一次性设置&#xff08;One time setup&#xff09; - 激活函数&#xff08;Activation functions&#xff09; - 数据预处理&#xff08;Data Preprocessing&#xff09; - 权重初始化&#xff08;Weight Initialization&#xff…...