大数据学习之Redis 缓存数据库二,Scala分布式语言一

news2025/2/4 20:35:09

一.Redis 缓存数据库二

26.Redis数据安全_AOF持久化机制

27.Redis数据安全_企业中该如何选择持久化机制

28.Redis集群_主从复制概念

29.Redis集群_主从复制搭建

30.Redis集群_主从复制原理剖析

31.Redis集群_哨兵监控概述

32.Redis集群_配置哨兵监控

33.Redis集群_哨兵监控原理剖析

34.Redis集群_哨兵监控故障转移监控

35.Redis集群_Cluster模式概述

36.Redis集群_Cluster模式搭建

37.Redis集群_Cluster模式原理

38.Redis集群_JAVA操作Redis集群

39.Redis企业级解决方案_Redis脑裂

40.Redis企业级解决方案_缓存预热

41.Redis企业级解决方案_缓存穿透

42.Redis企业级解决方案_缓存击穿

43.Redis企业级解决方案_缓存雪崩

44.Redis企业级解决方案_Redis开发规范

value 设计
拒绝 bigkey
防止网卡流量、慢查询, string 类型控制在 10KB 以内, hash
list set zset 元素个数不要超过 5000
#   表名 主键 主键值 存储列名字
set user:user_id:1:name baizhan
set user:user_id:1:age 20
# 查询这个用户
keys user:user_id:9*
162 命令使用
1 、禁用命令
禁止线上使用 keys flushall flushdb 等,通过 redis
rename 机制禁掉命令,或者使用 scan 的方式渐进式处理。
2 、合理使用 select
redis 的多数据库较弱,使用数字进行区分,很多客户端支持较
差,同时多业务用多数据库实际还是单线程处理,会有干扰。
3 、使用批量操作提高效率
原生命令:例如 mget mset
非原生命令:可以使用 pipeline 提高效率。
注意:
但要注意控制一次批量操作的 元素个数 ( 例如 500 以内,实
际也和元素字节数有关 )
4 、不建议过多使用 Redis 事务功能
Redis 的事务功能较弱 ( 不支持回滚 ) ,而且集群版本 ( 自研和官
) 要求一次事务操作的 key 必须在一个 slot 上。
客户端使用
Jedis https://github.com/xetorthio/jedis 重点推荐
1
Spring Data redis https://github.com/spring-projects/spring-data-redis 使用 Spring 框架
时推荐
2
Redisson https://github.com/mrniko/redisson 分布式锁、阻塞队列的时重点推荐
3
1 、避免多个应用使用一个 Redis 实例
不相干的业务拆分,公共数据做服务化。
2 、使用连接池
可以有效控制连接,同时提高效率,标准使用方式:
163 实时学习反馈
1.Redis 技术中下列符合 key 设计 __
A
user.id
B
user.id.1.age
C
user:id.1.age
D
user:id:1:age
答案
1=>C
执行命令如下:
Jedis jedis = null;
try {
  jedis = jedisPool.getResource();
// 具体的命令
  jedis.executeCommand()
} catch (Exception e) {
  logger.error("op key {} error: " +
e.getMessage(), key, e);
} finally {
// 注意这里不是关闭连接,在 JedisPool 模式下, Jedis 会被
归还给资源池。
if (jedis != null)
      jedis.close();
}

45.Redis企业级解决方案_数据一致性

二.Scala分布式语言一

2.1 Scala介绍与安装

1. 课程介绍

2. 什么是Scala

3. 为什么学习Scala

4. 六大特性

5. Scala环境安装

6. Idea插件安装

7. 第一个程序

8. 第一个程序简介

9. 查看字节码文件

2.2 Scala基础

10. 标识符_基本规则

Scala 可以使用两种形式的标识符,字符 + 数字和符号。
1
标识符使用字母或是下划线开头,后面可以接字母或是数
字。
     
LocalVariableTable :
       
Start   Length   Slot   Name  
Signature
           
0       17     0   this  
Lcn / itbaizhan / chapter01 / HelloWorld2$ ;
           
0       17     1   args  
[ Ljava / lang / String ;
   
MethodParameters :
     
Name                           Flags
     
args                           final
}
SourceFile : "HelloWorld2.scala"
Error : unknown attribute
ScalaInlineInfo : length = 0xE
01 01 00 02 00 0 A 00 09 01 00 0 D 00 0 E
01
Error : unknown attribute
Scala : length = 0x0
package cn . itbaizhan . chapter02
// 标识符的基本规则
object Identifier1 {
def main ( args : Array [ String ]): Unit = {
   
/*scala 的标识符和 java 的标识符基本一致
     
1. 可以使用字母、数字,下划线, $( 不建议使用 )
24 2
Scala 内部实现时会使用转义的标识符,比如 :-> 使用
$colon$minus$greater 来表示这个符号。因此如果你需要在
Java 代码中访问 :-> 方法,你需要使用 Scala 的内部名称
$colon$minus$greater
     
2. 是区分大小写的。
     
3. 长度是没有限制的。
     
4. 数字不能为标识符的开头
     
5. 关键字不能直接用来作为标识符
   
*/
   
var name = "tuhao1"
   
var naMe = "tuhao2"
   
var name1 = "diaosi"
   
//var 2name = "baifumei"// 错误的
   
//var def = "aitucuo"// 错误的
   
var name_ = "baifumei2"
}
}
package cn . itbaizhan . chapter02
object Identifier2 {
def main ( args : Array [ String ]): Unit = {
   
// 不建议使用特殊符号做标识符
   
// 编译后将 > 转义为 $greater ,所以我们使用
$ 开头的标识符容易产生冲突
   
val > = "tuhao"
   
println ( > ) //tuhao
   
//val $greater = "diaosi"//
   
// 下划线不要 直接作为标识符的名称
   
/*val _ = "username"
   
println(_)// 运行时出现异常 */
25 java 代码如下:
"$" 开头的标识符为保留的 Scala 编译器产生的标识符使
用,应用程序应该避免使用 "$" 开始的标识符,以免造成冲
突。
3
Scala 的命名规则采用和 Java 类似的 驼峰命名规则,首字符
小写,比如 toString 。类名的首字符还是使用大写。
4
避免使用以下划线结尾的标识符以避免冲突。符号标识符包
含一个或多个符号,如 + : ? 等,比如 :
}
def method (): String = {
   
"method() 被调用了 .."
}
def : -> (): Unit = {
   
println ( ":->() 被调用了 .." )
}
}
package cn . itbaizhan . chapter02 ;
public class Identifier2Java {
   
public static void main ( String [] args )
{
       
/*String result =
Identifier2.method();
       
System.out.println(result);*/
       
// 调用 Identifier2 中的 :->()
     
Identifier2 . $colon$minus$greater ();
  }
}
+ ++ ::: < ?> :->
26 5
可以在反引号之间使用任何有效的 Scala 标识符, Scala 将它
们解释为一个 Scala 标识符,一个典型的使用为 Thread
yield 方法, 在 Scala 中你不能使用 Thread.yield() 是因为
yield Scala 中的关键字,如下方式使用。
package cn . itbaizhan . chapter02
// 了解即可
object Identifier3 {
def main ( args : Array [ String ]): Unit = {
   
val ## = "tuohao"
   
val @@ = "diaosi"
   
val + = "tuhao1"
   
val - = "tuhao1"
   
val * = "tuhao1"
   
val / = "tuhao1"
   
val % = "tuhao1"
   
val < = "tuhao1"
   
val :: = "tuhao1"
   
val ? = "tuhao1"
}
}
package cn . itbaizhan . chapter02
// 关键字作为标识符如何解决
object Identifier4 {
def main ( args : Array [ String ]): Unit = {
   
// 以下两个代码 编译错误
   
/*val def = " 主函数变量 "
   
val private = "test1"*/
   
// 如果需要使用关键字作为标识符,需要使用反引号
   
val `def` = " 主函数变量 "
   
val `private` = "test1"
27 abstract
case
catch
class
def
do
else
extends
false
final
finally
for
forSome
if
implicit
import
lazy
match
new
null
object
override
package
private
protected
return
sealed
super
this
throw
trait
try
true
type
val
var
while
with
yield
-
:
=
=>
<-
<:
<%
>:
#
@
下表列出了 scala 保留关键字,我们不能使用以下关键字作为
变量名:
实时效果反馈
1. 关于 Scala 标识符的描述,错误的是:
A
标识符使用字母或是下划线开头,后面可以接字母或是数
字。
B
标识符命名规则采用和 Java 类似的 camel 命名规则,首字
符小写,比如 toString 。类名的首字符还是使用大写。。
   
println ( `def` )
   
Thread . `yield` ()
}
}

11.标识符_特殊符号

12.标识符_关键字处理方案

13.变量

2.2 变量
变量是一种使用方便的占位符,用于引用计算机内存地址,变
量创建后会占用一定的内存空间。基于变量的数据类型,操作系统
会进行内存分配并且决定什么将被储存在保留内存中。因此,通过
给变量分配不同的数据类型,你可以在这些变量中存储整数,小数
或者字母。
变量的类型在变量名之后等号之前声明。
var/val 变量名 :变量类型 = 变量值 // :变量类型 可以省略。
变量的类型如果能够通过变量值推断出来,那么可以省略类型
声明,这里的省略,并不是不声明,而是由 Scala 编译器在编译时自
动声明编译的。
29 Java 语法中变量在使用前进行初始化就可以,但是 Scala 语法中
是不允许的,必须
显式
进行初始化操作。
值可以改变的变量,被称为可变变量。使用 var 进行声明,值可
以改变,但是类型不能改变。
值一旦初始化后无法改变的变量,称之为不可变变量(也被称
为常量)。 Scala 中不可变变量使用关键字 val 进行声明 , 类似于 Java
语言中的 final 关键字
object ScalaVarVal {
def main ( args : Array [ String ]): Unit = {
   
// 名称
   
var name = "GTJin"
   
// 年龄
   
var age = 30
   
// 城市
   
val city = "beijing"
}
}
var address // 错误
var phone = "13812345678" // 正确的
var phone = "13812345678" // 正确的
phone = "13888888888" // 值可以改变
phone = 123 // 类型无法改变,也就是无法从 String 改为
Int
// 城市
val city : String = "beijing"
city = "ShangHai" // 错误
city = true // 错误
30 实时效果反馈
1. 关于 Scala 变量的描述,错误的是:
A
变量是一种使用方便的占位符,用于引用计算机内存地址。
B
变量创建后会占用一定的内存空间。
C
可变变量,使用 var 进行声明,值和类型都可以改变。
D
不可变变量(常量)使用 val 进行声明,值和类型都不可以
改变。
答案:
1=>C 可变变量,使用 var 进行声明,值可以改变但类型不可以
改变。

14.数据类型一

15.数据类型二

package cn . itbaizhan . chapter02
object DateType {
def main ( args : Array [ String ]): Unit = {
   
var bt : Byte = 10
   
var st : Short = 32675
   
var it : Int = 100000
   
var lg : Long = 10000000L
   
var ft : Float = 3.14f
   
var ft1 = 3.14f // 自动类型推测出为 Float
   
var db : Double = 8.8
   
var ca : Char = 'A'
   
var name : String = "gtjin"
   
var flag : Boolean = true
   
//Unit 类型的对象 只有一个值 就是 ()
   
var result : Unit = method ()
   
println ( result )
}
def method (): Unit = {
   
println ( "method" )
}
}
33 实时效果反馈
1. 关于 Scala 数据类型的描述,错误的是:
A
Byte 8 位有符号补码整数。数值区间为 -127 128
B
Int 32 位有符号补码整数。数值区间为 -2147483648
2147483647
C
Long 64 位有符号补码整数。数值区间为
-9223372036854775808 9223372036854775807
D
Boolean 类型的值为 true false
答案:
1=>A 区间为 -128 127

16.类型转换一

17.类型转换二

18.分支控制

19.循环控制_to和until

20.循环控制_for循环一

21.循环控制_for循环二

22.循环控制_for循环三

23.循环控制_for循环四

24.循环控制_while和do while

25.循环中段

26.字符串_String一

27.字符串_String二

28.字符串_StringBuilder

29.输入输出_控制台输入

30.输入输出_本地文件输入

31.输入输出_互联网文件输入

32.输入输出_写文件操作

package cn . itbaizhan . chapter02
// 导入相关类
import java . io .{ File , PrintWriter }
// 输出内容到文件 ( 写入内容到文件中 )
//Scala 进行文件写操作用的是 java IO
object OutFile {
def main ( args : Array [ String ]): Unit = {
   
// 创建写文件的对象
   
// 默认写到项目的根目录下
   
val writer = new PrintWriter ( new
File ( "out.txt" ))
   
// 写内容到文件,为了提高效率,会将写的内容放入
到缓冲区中,达到一定阈值时在刷到文件中
   
writer . write ( "tuhao\n" )
   
writer . write ( "diaosi\n" )
   
writer . write ( "baifumei\n" )
   
// 手动刷新缓冲区
   
writer . flush ()
   
// 关闭输出流对象
   
writer . close ()
}
}

2.3 基础功能搭建

33.函数和方法的区别

3.1 函数和方法区别
Scala 中存在方法与函数两个不同的概念,二者在语义上的区别很小。 scala 方法是类的一部
分,而函数是一个对象,可以赋值给一个变量,也可以作为方法或其它函数的参数。换句话来
说在类中定义的即是方法。 scala 中的方法跟 Java 的类似,方法是组成类的一部分。 scala
的函数则是一个完整的对象。
1
Scala 中的方法和函数从语法概念上来讲,一般不好区分,所以简单的理解就是:方法也是函
数。只不过类中声明的函数称之为方法,其他场合声明的就是函数了。类中的方法是有重载和
重写的。而函数可就没有重载和重写的概念了,但是函数可以嵌套声明使用,方法就没有这个
能力了,勿忘我哦

34.函数定义_无参无返回值函数

35.函数定义_有参无返回值

36.函数定义_无参有返回值

37.函数定义_有参有返回值

38.函数定义_总结

39.不定参数的函数一

40.不定参数的函数二

41.默认值参数函数

42.函数至简原则一

43.函数至简原则二

44.函数作为值一

45.函数作为值二

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

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

相关文章

Elasticsearch:使用 Ollama 和 Go 开发 RAG 应用程序

作者&#xff1a;来自 Elastic Gustavo Llermaly 使用 Ollama 通过 Go 创建 RAG 应用程序来利用本地模型。 关于各种开放模型&#xff0c;有很多话要说。其中一些被称为 Mixtral 系列&#xff0c;各种规模都有&#xff0c;而一种可能不太为人所知的是 openbiollm&#xff0c;这…

【日常开发】Git Stash使用技巧

文章目录 引言一、git stash 基础命令&#xff08;一&#xff09;存储当前工作区的修改&#xff08;二&#xff09;查看存储列表 二、查看存储的内容&#xff08;一&#xff09;查看特定存储的详细内容&#xff08;二&#xff09;查看特定存储修改的文件列表 三、恢复存储的修改…

GXUOJ-算法-第三次作业

1.基础练习 Huffman树 问题描述 GXUOJ | 基础练习 Huffman树 代码解析 #include<bits/stdc.h> using namespace std; int main(){int n;cin>>n;priority_queue<int,vector <int>,greater<int> >pq;for(int i0;i<n;i){int value;cin>>…

04-微服务02

我们将黑马商城拆分为5个微服务&#xff1a; 用户服务 商品服务 购物车服务 交易服务 支付服务 由于每个微服务都有不同的地址或端口&#xff0c;相信大家在与前端联调的时候发现了一些问题&#xff1a; 请求不同数据时要访问不同的入口&#xff0c;需要维护多个入口地址…

vue导入导出excel、设置单元格文字颜色、背景色、合并单元格(使用xlsx-js-style库)

npm i xlsx-js-style <template><button click"download">下载 Excel 表格</button><el-table :data"tableData" style"width: 100%"><el-table-column prop"date" label"日期" width"180…

AI文献阅读ChatDOC 、ChatPDF 哪个好?

作为AI产品的深度使用者&#xff0c;基本每天都在使用AI。AI诞生后仿佛给所有的产品打开了新世界大门。当然AI在文献阅读方面自然也不会缺席。 先来简单对比一下ChatDOC vs ChatPDF 从表格里可以看到ChatDOC与ChatPDF都是基于GPT的产品&#xff0c;但在功能上ChatDOC还是比Chat…

小程序基础 —— 10 如何调试小程序代码

如何调试小程序代码 在进行项目开发的时候&#xff0c;不可避免需要进行调试&#xff0c;那么如何调试小程序呢&#xff1f; 打开微信开发者工具后&#xff0c;有一个模拟器&#xff0c;通过模拟器能够实时预览自己写的页面&#xff0c;如下&#xff1a; 在上部工具栏中有一个…

vue+echarts实现疫情折线图

效果&#xff1a; 代码&#xff1a; <<template><div><div id"left1" style "height:800px;width:100%"></div></div> </template><script> //疫情数据//export default {data() {return {data:{//疫情数据…

使用arduino从零做一辆ROS2Jazzy的阿克曼小车---电机驱动篇

本项目采用 Arduino Mega2560 Pro 作为主控开发板&#xff0c;电机驱动器选用 TB6612FNG&#xff0c;并配备了 12V 电源、两个直流减速电机和一个舵机。未来计划通过嘉立创将各模块集成到一个 PCB 板上&#xff0c;提升系统的集成度和稳定性。 本文将聚焦于电机驱动部分&#x…

基于源码剖析:深度解读JVM底层运行机制

每日禅语 佛说&#xff0c;给你修路的&#xff0c;是你自己&#xff1b;埋葬你的&#xff0c;也是你自己&#xff1b;帮助你的&#xff0c;是你自己&#xff1b;毁灭你的&#xff0c;也是你自己&#xff1b;成就你的&#xff0c;自然还是你自己。所以佛说&#xff1a;自作自受&…

算法进阶:贪心算法

贪心算法是一种简单而直观的算法思想&#xff0c;它在每一步选择中都采取在当前状态下最优的选择&#xff0c;以期望最终得到全局最优解。贪心算法通常适用于一些具有最优子结构的问题&#xff0c;即问题的最优解可以通过一系列局部最优解的选择得到。 贪心算法的基本思路是&a…

Hive刷分区MSCK

一、MSCK刷分区 我们平时通常是通过alter table add partition方式增加Hive的分区的&#xff0c;但有时候会通过HDFS put/cp命令或flink、flum程序往表目录下拷贝分区目录&#xff0c;如果目录多&#xff0c;需要执行多条alter语句&#xff0c;非常麻烦。Hive提供了一个"…

Windows API Set:那些“只存在但不被使用“的DLL

API Set 是什么&#xff1f; 想象一下&#xff0c;Windows就像一个大型图书馆&#xff0c;而API Set就是这个图书馆的索引系统。但这个索引系统非常特别&#xff1a;它是直接内置在Windows加载器中的"虚拟目录"。 // 一个典型的API Set映射示例 api-ms-win-core-mem…

【Java 数据结构】合并两个有序链表

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 目录 1. 题目 2. 解析 3. 代码实现 4. 小结 1. 题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示…

图像处理-Ch6-彩色图像处理

Ch6 彩色图像处理 无广告更易阅读&#xff0c;个人博客点此进入<– 文章目录 Ch6 彩色图像处理彩色基础彩色模型(Color models)RGB(red, green, blue)CMY & CMYK(cyan, magenta, yellow/and black)HSI(hue, saturation, intensity)HSV(hue, saturation, value) 颜色空…

03.HTTPS的实现原理-HTTPS的工作流程

03.HTTPS的实现原理-HTTPS的工作流程 简介1. HTTPS的工作流程1.1. TCP的工作流程1.1.1. 三次握手的详细步骤1.1.2. 三次握手的作用 1.2. HTTPS的工作流程1.2.1. HTTPS与TCP的关系1.2.2. HTTPS的工作流程 2. 公钥和私钥的作用3. 对称密钥的生成和交换4. 对称加密和非对称加密的区…

隧道FM广播信号、隧道内调频广播信号覆盖方案选择

一、为什么汽车驶入隧道内&#xff0c;就听不到FM调频广播信号了 隧道是一个半封闭的管状结构&#xff0c;有很强的电磁屏蔽效应&#xff0c;汽车进入隧道后&#xff0c;汽车收音机就会出现沙沙的噪声&#xff0c;这是由于隧道内的调频广播信号变弱甚至无信号&#xff0c;导致车…

基于SSM的“电器网上订购系统”的设计与实现(源码+数据库+文档+PPT)

基于SSM的“电器网上订购系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页 商品类型 商品管理 订单展示 商品购物车 登录页面 …

工业大数据分析算法实战-day19

day19 今天是第19天&#xff0c;昨日是针对线性规划、整数规划建模技巧进行阐述&#xff0c;今天开启第九章节—行业知识沉淀的方法&#xff0c;该章节主要是对行业知识的范畴进行探讨&#xff0c;将讨论限制在研判类的知识沉淀上&#xff0c;将业务范围侧重在PHM中&#xff0…

Unity URP多光源支持,多光源阴影投射,多光源阴影接收(优化版)

目录 前言&#xff1a; 一、属性 二、SubShader 三、ForwardLitPass 定义Tags 声明变体 声明变量 定义结构体 顶点Shader 片元Shader 四、全代码 四、添加官方的LitShader代码 五、全代码 六、效果图 七、结语 前言&#xff1a; 哈喽啊&#xff0c;我又来啦。这…