2024.8.22(Docker)

news2024/9/20 21:16:59

一、回顾

高并发集群 eleme后端登录模块

1、数据库
        1.主从复制(高可用)
        2.传统的主从复制
        3.gtids事务型的主从复制
        4.注意

                (1)server_id唯一

                (2)8.x版本需要get_ssl_pub_key

                (3)5.x不需要

                (4)change master to

                (5)stop | start slave

        5.非交互
import pymysql
conn=pymysql.connect(host=xxx,user=xxx,password=xxx,port=xx,database=xxxx)
cursor=conn. cursor()
sql="insertldeletelupdatelselect ... "
cursor.execute(sql)
#查询不需要提交 直接使用fectch就可以得到结果
#增删改需要提交
conn. commit()
mysql -h192.168.71.11 << EOF

create database if not exists test charset utf8mb4;
use test;
create tables

quit
EOF
        6. 数据库的负载均衡 阿里巴巴的mycat

        server.xml schema.xml 

<!--
/usr/local/mycat/conf/server.xml
# 对外的账号 密码 数据库
-->
<uker name="blt">
    <property name="password">blt</property>
    <property name="database">test</property>
</user>

<!--
/usr/local/mycat/conf/scheam.xml

-->
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

	<schema name="eleme" dataNode="dn1"  checkSQLschema="false" sqlMaxLimit="100"></schema>
	<dataNode name="dn1" dataHost="localhost1" database="eleme" />
	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<writeHost host="hostM1" url="192.168.71.10:3306" user="zhangmin" password="zhangmin">
     <readHost host="hostS2" url="192.168.71.11:3310" user="zhangmin" password="zhangmin" />
     <readHost host="hostS3" url="192.168.71.12:3310" user="zhangmin" password="zhangmin" />
		</writeHost>
	</dataHost>
</mycat:schema>

         如果出现启动异常 8066端口没有打开,可以检查两个日志文件
        vim /usr/local/mycat/logs/wrapper.log
        vim /usr/local/mycat/logs/mycat.log

2、后端服务器 java|python|php|asp

版本:正常市场jdk8,但是由于spring6.x米必要求17以上的版本,jdk版本比较多,找开发者要版本-jdk

vim /etc/profile
export JAVA_HOme=/usr/local/jdk
export PATH=$PATH: $JAVA_HOME/bin
source /etc/profile
#使用jar包启动服务
##Mapplication.properties|ym1
#修改 ym1中的端口或者数据源
url=jdbc:msyq1://ip:port/databasename
username=dbuser
passowrd=dbpass
java -jar eleme_server.xxxxx.jar
3、负载均衡技术 
        1. lvs     

                dr模式

                ds主机

1.挂载vip(对外) ens33:0
ifconfig ens33:0 vipxx broadcast=vipxxx
netmast=255.255.255.255 up
route add vip dev ens33:0

yum -y install ipvsadm
#添加规则
ipvsadm -A -t vipxx:port -s rr
ipvsadm -a -t vipxx:port -r ripxx -g
ipvsadm -a -t vipxx:port .......
#rs主机
ifconfig lo:0 vipxxx broadcast .... netmask xxxx up
route add vipxxx dev lo:0

#抑制接受请求
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1> /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2> /proc/sys/net/ipv4/conf/all/arp_announce
         2. nginx配置 代理 负载均衡
vim /etc/nginx/conf/nginx.conf
http {

upstream javagroup {
server ip:port weight=99;
server ip:port weight=1;

}

server {
location ~/ {
pass_proxy http://javagroup;
    }
}

二、Docker

1、Docker是什么?

Docker是一个开源的应用容器引擎,可以实现虚拟化,完全采用“沙盒”机制,容器之间不会存在任何接口。

Docker通过Linux Container(容器)技术将任意类型的应用进行包装,变成一种轻量级、标准化、可移植、自管理的组件。在包装应用的同时,可连带该应用的依赖和环境一并进行打包,所以可以将这种“包”移植到任意环境去运行,省去兼容性的问题。

2、Docker和虚拟机的区别

Docker和虚拟机在以下八个方面存在差异:

1. 启动速度:Docker启动速度非常快,属于秒级别,而虚拟机通常需要几分钟去启动。

2. 资源消耗:Docker需要的资源更少,它直接运行在宿主机的内核上,以一系列进程的结合形式存在。而虚拟机则需要消耗更多的资源,因为它在操作系统级别进行虚拟化。

3. 轻量级:Docker更轻量,它的架构可以共用一个内核与共享应用程序库,所占内存极小。而虚拟机则相对较重,需要消耗更多的内存。

4. 隔离性:虚拟机可以实现系统级别的隔离,而Docker则属于进程之间的隔离,隔离性相对较弱

5. 安全性:Docker的安全性也更弱。

6. 可管理性:Docker的集中化管理工具还不算成熟。

7. 兼容性:开发人员不需要关系具体是哪个Linux操作系统,基本市面上主流系统都可使用Docker,

8. 数据持久性:Docker无法存储数据,当容器重启后,数据会消失;而虚拟机可以存储各种数据,包括日志、数据库等。

3、docker解决的问题
(1)环境不同时会出现的问题

将简易的操作系统、编写好的代码、部署完成的应用服务配置等打包放到容器内,再转到鲸鱼上,由鲸鱼送到服务器,此时,无论是什么运行环境,docker容器都可以运行。

(2)应用隔离问题

Linux是一个支持多用户的操作系统,正因如此,可能会造成用户使用时,互相之间占用资源过多,以致于服务器资源空间不足,而docker具有隔离性,可以在启动时就限定好硬件的使用率,当某个容器到达或超过限定的阈值时,就会被kill,此时需要运维人员对其进行调试。

(3)服务器扩展问题

日常的业务量大多很平均,但在业务量繁多时期,比如“双十一”,“春运购票”等场景,就需要对服务器进行横向扩展才能将负载均衡下来,而如果大规模地扩展服务器,待服务器满载时期过去,回到日常业务量后,就会导致剩余资源极大地浪费。并且在扩展时,还要对各种应用服务进行部署、调试等,工作量也十分庞大,所以,此时使用Docker将会真正意义上实现快速部署,且耗费资源较少,尤其不会出现兼容性的问题。

4、Docker的优缺点
(1)优点

1. 体积小:减小系统的开销值,一台主机可以运行上千个容器。

2. 启动迅捷:更快速的交付和部署,docker容器,比传统虚拟机要快很多,docker核心解决的问题就是利用容器实现VM类似的功能。

3. 操作方便:通过配置dockerfile便支持灵活的自动化创建和部署。

4. 更轻松的扩展:可以实现更简单的、更可靠的迁移,避免了兼容性等问题。

5. 更强的可扩展性和可移植性

(2)缺点

1. 安全问题:如果没有正确配置,一个容器中的恶意代码可能会影响到主机上的其他容器以及主机本身的安全。

2. 存储问题:当使用大量容器时,存储和管理容器映像可以变得非常困难。这可能需要使用分布式存储或其他解决方案来管理大量容器的存储。

3.性能问题:在某些情况下,容器和虚拟机相比会导致性能损失。这些性能问题越来越少,但是仍然需要考虑。

4. 网络问题:Docker可能会在网络配置上存在一些问题,这可能需要更多的时间来诊断和解决。

5. 复杂性:Docker是一个非常灵活的系统,但这同时也让它更加复杂。长时间使用Docker会产生大量的脚本和配置文件,这些可能变得难以维护。

6. 资源消耗:使用Docker必须占用一些资源,包括CPU、内存、磁盘等等。如果运行容器的主机资源不足,可能会导致性能问题。

7. 学习曲线:Docker是一个相对新的技术,相比传统环境需要一定的学习曲线。需要了解Docker基本概念、命令和配置文件等。

8. 需要花费时间配置和管理:使用Docker需要花时间配置和管理容器集群和应用程序。需要配置每个容器,管理Jenkins、Kubernetes 等运行Docker容器的工具。

9. 映像构建复杂:构建Docker映像需要按照特定格式编写Dockerfile脚本,需要遵循一定的规范和流程,这可能需要更多的时间和精力。

5、Docker架构

1. 用docker pull 命令从hub.docker.com官网上下载images(镜像)。

2. 可以用docker save命令将镜像保存到本地tar文件,也可以用docker load 命令将本地tar文件导入镜像。

3. 可以用docker build 构建 Dockerfile镜像。

4. 可以用docker run和 docker create 将镜像运行成container(容器),容器内可以安装所需要的APP。

5. 可以用docker commit/export将容器做成镜像反复的使用。

6. 可以将自己制作的镜像发布到hub.docker.com网站,需要注册账号。

6、Docker核心概念

1. 镜像(images):一个面向docker容器引擎的只读模板,也是容器的基础,类似于iso镜像文件。

2. 容器(container):基于镜像所创建的虚拟实例,相当于一个简易的Linux环境,可启停,且多个容器之间互相隔离。

3. 仓库(Repository):集中存放docker镜像的位置,可使用docker pull或push命令下载或上传到私有或公有仓库。

4. 仓库注册服务器(registry):存放仓库的地方,如果没有私有仓库,则使用公共仓库docker hub。

7、Docker 特性

■ 文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。

■ 资源隔离:实现不同的容器的资源配额和调度,cgroup。

■ 网络隔离:每个进程容器运行在自己的网络空间,拥有虚拟接口和IP地址。

■ 日志记录:Docker将收集到和记录的每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或者批量检索。

■ 变更管理:容器文件系统的变更可以提交到新的镜像中,并可重复使用以创建更多的容器。

■ 交互式shell:Docker可以分配一个虚拟终端并且关联到任何容器的标准输出上,例如运行一个一次性交互shell。

三、安装docker

1、Docker要求

2、安装Docker

[root@docker ~]# cat << EOF | tee /etc/modules-load.d/k8s.conf
> overlay
> br_netfilter
> EOF
overlay
br_netfilter
[root@docker ~]# modprobe overlay       # 加载overlay内核模块
[root@docker ~]# modprobe br_netfilter     #加载br_netfilter内核模块
[root@docker ~]# cat /etc/modules-load.d/k8s.conf 
overlay
br_netfilter

[root@docker ~]# cat << EOF | tee /etc/sysctl.d/k8s.conf
> net.bridge.bridge-nf-call-iptables=1
> net.bridge.bridge-nf-call-ip6tables=1
> net.ipv4.ip_forward=1
> EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
[root@docker ~]# sysctl --system
[root@docker ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@docker ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo          //下载仓库
[root@docker ~]# ls /etc/yum.repos.d/
CentOS-Base.repo  docker-ce.repo  epel-testing.repo
dd.repo           epel.repo
[root@docker ~]# yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y      //--allowerasing  :允许卸载旧版本

[root@docker ~]# systemctl start docker.service     //运行容器
[root@docker ~]# docker images               //查看现有的镜像
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@docker ~]# docker search tomcat      //搜索tomcat镜像

[root@docker ~]# docker search nginx
[root@docker ~]# docker search mysql        

[root@docker ~]# docker inspect centos   //查看镜像的详细信息

■ overlay:是一种文件系统层叠技术,常用于容器化平台(比如Docker)中。它允许将多个文件系统叠加在一起,从而创建一个统一可见的文件系统。通过加载 overlay模块,可以在Linux系统中使用 overlay文件系统,并且它将提供一些额外的功能,比如联合挂载、文件层叠等。

■ br_netfilter:Linux 内核中的一个模块,它提供了桥接设备(bridge device)和网络过滤器(netfilter)之间的集成。它允许在桥接设备上使用网络过滤器功能,如防火墙规则、网络地址转换(NAT)等。通过加载br_netfilter模块,你可以在Linux系统中的桥接设备上应用网络过滤规则对网络流量进行管理和控制。
■ device-mapper-persistent-data:一个LinuxF核模块,为Device Mapper设备提供持久存储功能。DMPD提供了一个用于存储映射关系的数据库,使得Device Mapper可以持久化存储映射数据,以便在系统重新启动后仍然可以恢复之前的映射关系。

■ lvm2:Linux系统下的逻辑卷管理工具,LVM的升级版,它是对磁盘分区进行管理的一种机制,建立在硬盘和分区之上的一个逻辑层,用来提高磁盘管理的灵活性。

3、启动服务获取镜像

[root@docker ~]# vim /etc/docker/daemon.json

{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}

[root@docker ~]# systemctl restart docker

[root@docker ~]# docker search centos

[root@docker ~]# docker pull centos  //下载镜像

4、容器管理

# 第一次创建容器

[root@docker ~]# docker run -i -t --name=c0 centos:latest /bin/bash    //运行 -i交互 -t终端操作 --name名称 镜像:版本 

[root@372f7f49e6df /]# cd
[root@372f7f49e6df ~]# ls
anaconda-ks.cfg  anaconda-post.log  original-ks.cfg
[root@372f7f49e6df ~]# rm -rf /etc/yum.repos.d/*
[root@372f7f49e6df ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
[root@372f7f49e6df ~]# ls /etc/yum.repos.d/
CentOS-Base.repo
[root@372f7f49e6df ~]# yum clean all && yum makecache
[root@372f7f49e6df ~]# yum -y install httpd

[root@372f7f49e6df ~]# yum -y install iproute
[root@372f7f49e6df ~]# yum -y install net-tools
[root@372f7f49e6df ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255

[root@372f7f49e6df ~]# ps    //当前运行的进程

[root@372f7f49e6df ~]# pwd   //当前位置
[root@372f7f49e6df ~]# uptime   //启动时间

[root@372f7f49e6df ~]# cat /etc/redhat-release    //查看当前版本
CentOS Linux release 8.4.2105 

镜像是模板,容器时实例( 下载的是镜像,运行的是容器)

[root@372f7f49e6df ~]# echo "docker_httpd_server" > /var/www/html/index.html
[root@372f7f49e6df ~]# systemctl start httpd    //无法启动
[root@372f7f49e6df ~]# httpd -k start    //启动

[root@372f7f49e6df ~]# curl localhost
docker_httpd_server
[root@372f7f49e6df ~]# curl http://localhost
docker_httpd_server

[root@docker ~]# curl http://172.17.0.2
docker_httpd_server
[root@docker ~]# ps -aux | grep docker   //查看docker的进程

[root@372f7f49e6df ~]# exit             //退出就没有进程了
exit
[root@docker ~]# curl 172.17.0.2
^C
[root@docker ~]# ssh root@172.17.0.2
ssh: connect to host 172.17.0.2 port 22: No route to host 

[root@docker ~]# docker start c0
c0
[root@docker ~]# docker attach c0      //将c0挂载到当前宿主机终端(回到原本的)
[root@372f7f49e6df /]# httpd -k start
[root@372f7f49e6df /]# netstat -lnput | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      18/httpd            
[root@372f7f49e6df /]# curl localhost
docker_httpd_server   
# ctrl+p+q   退出后仍然可以访问,退出但不中断 先p后q

[root@docker ~]# curl http://172.17.0.2:80
docker_httpd_server

5、远程管理
1. 关闭docker

[root@docker ~]# systemctl status docker   //查看状态

[root@docker ~]# docker version

[root@docker ~]# systemctl stop docker

2. 修改dock daemon的进程文件 (docker允许远程连接)

[root@m57 ~]# service mysql57 start
Starting MySQL. SUCCESS! 
[root@m57 ~]# ls -lh /tmp/
总用量 8.0K
srwxrwxrwx  1 mysql mysql   0 8月  22 15:30 mysql.sock      //开启自动创建套接字文件
-rw-------  1 mysql mysql   5 8月  22 15:30 mysql.sock.lock

[root@docker ~]# ls -lh /var/run/                //允许远程登陆一定有套接字文件

# 进入配置文件

[root@docker ~]# vim /usr/lib/systemd/system/docker.service

 13 ExecStart=/usr/bin/dockerd   删除 -H fd:// --containerd=/run/containerd/containerd.sock


[root@docker ~]# vim /etc/docker/daemon.json

{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ],
        
        "hosts": [
                "tcp://0.0.0.0:2375",
                "unix///var/run/docker.sock"
        ]
}

[root@docker ~]# systemctl start docker   //启动

Warning: docker.service changed on disk. Run 'systemctl daemon-reload' to reload units.

[root@docker ~]# systemctl daemon-reload     # 加载daemon.json
[root@docker ~]# systemctl restart docker.service

[root@docker ~]# netstat -lntup | grep 2375   

[root@docker ~]# docker -H 192.168.8.168 images     / /远程连接
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   2 years ago   231MB

[root@docker ~]# docker start c0
c0
[root@docker ~]# docker attach c0
[root@372f7f49e6df /]# curl localhost
curl: (7) Failed to connect to localhost port 80: Connection refused
[root@372f7f49e6df /]# httpd -k start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[root@372f7f49e6df /]# curl localhost
docker_httpd_server
[root@372f7f49e6df /]# read escape sequence
[root@docker ~]# docker ps -all
CONTAINER ID   IMAGE           COMMAND       CREATED       STATUS          PORTS     NAMES
372f7f49e6df   centos:latest   "/bin/bash"   2 hours ago   Up 53 seconds             c0
[root@docker ~]# docker info
 [root@docker ~]# docker --help   //帮助命令

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

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

相关文章

ts枚举类型校验,提示枚举信息

ts 类型验证&#xff0c;提示枚举信息 const eventTypeList [MOUSE_MOVE, // 鼠标移动LEFT_CLICK // 左键单击// MOUSE_OUT, ] as consttype EventTypeList typeof eventTypeList[number]

FST(Finite State Transducer)

有限状态转换器&#xff08;Finite State Transducer&#xff0c;简称FST&#xff09;是一种计算模型&#xff0c;它是有限状态自动机&#xff08;Finite State Automaton&#xff0c;简称FSA&#xff09;的扩展。FSA是一种理论计算模型&#xff0c;用于表示和处理正则语言&…

苹果iOS / iPadOS 18 beta 7版本发布,或将是最后一个iOS / iPadOS 18beta版本

今日苹果公司向 iPhone 和 iPad 用户推送了 iOS/iPadOS 18 开发者预览版 Beta 7 更新&#xff08;内部版本号&#xff1a;22A5346a&#xff09;&#xff0c;本次更新距离上次发布 Beta/RC 间隔 8 天。 值得注意的是&#xff0c;本次更新版本号以a结尾&#xff0c;意味着如果不…

国密算法SSL证书:守护网络安全的利器

国密算法SSL证书是基于中国自主研发的密码算法标准生成的安全套接层证书&#xff0c;主要用于保护网站和应用程序的数据传输安全。该证书采用SM2椭圆曲线公钥密码算法、SM3密码哈希函数和SM4对称密钥加密算法&#xff0c;确保数据传输过程中的机密性、完整性和抗攻击性。 国密…

KKView远程Microsoft Remote Desktop

Microsoft Remote Desktop&#xff1a;高效稳定的远程连接解决方案 在当今这个信息化、网络化的时代&#xff0c;远程桌面工具成为了许多用户进行远程办公、学习及技术支持的重要工具。其中&#xff0c;Microsoft Remote Desktop以其高效稳定的连接性能、强大的跨平台支持及出…

学校每年比用的招生简章在线制作平台!

每年招生季节&#xff0c;各大中小学及高校都会面临一个重要的任务&#xff1a;更新和发布招生简章。这不仅是一份简单的招生说明&#xff0c;它更是学校向外界展示自身特色、招生政策和培养目标的重要窗口。随着信息技术的发展&#xff0c;传统的纸质招生简章逐渐演变为在线制…

通过拖拽添加dom和一些属性

将图片通过拖拽添加到指定位置 <template><div class"draggle-box"><imgclass"draggle-source"src"/assets/bg/cat.jpg"dragstart"handleDragStart($event, 图片)"/><divclass"draggle-target"dragove…

嵌入式学习——(Linux高级编程——线程控制)

线程的互斥 一、互斥的重要性 在多线程编程中&#xff0c;互斥机制至关重要。当多个线程同时访问临界资源时&#xff0c;如果没有有效的互斥控制&#xff0c;可能会导致数据不一致、资源竞争等问题。通过互斥锁&#xff0c;可以确保在任何时刻只有一个线程能够访问临界资源&am…

Axure RP 9高手速成秘籍:解锁终极快捷键,设计效率飙升10倍!

Axure RP 9作为一款功能强大的原型设计工具&#xff0c;提供了丰富的快捷键来加速设计流程。以下是一份详尽的Axure RP 9快捷键大全&#xff0c;旨在帮助用户更高效地完成设计工作。 一、文件操作 新建&#xff1a;Ctrl N&#xff08;Windows&#xff09;/ Command N&#…

【LLM大模型】本地玩转多模态Llama3

一般开源的LLM&#xff0c;例如Llama3和Qwen2等&#xff0c;只支持文本的输入&#xff0c;只能理解文本的内容&#xff0c;实现基于文本的逻辑推理和意图识别。 但是一些Chatbot&#xff0c;例如GPT-4V&#xff0c;就是拥有视觉能力&#xff0c;能够理解图片内容&#xff0c;能…

【LeetCode Cookbook(C++ 描述)】一刷二叉搜索树

目录 LeetCode #700&#xff1a;Search in a Binary Search Tree 二叉搜索树中的搜索递归法迭代法 LeetCode #98&#xff1a;Validate Binary Search Tree 验证二叉搜索树递归法迭代法 LeetCode #530&#xff1a;Minimum Absolute Difference in BST 二叉搜索树的最小绝对差递归…

在IEDA里打包Maven项目记录

之前在网上查找到的方式发现比较繁琐&#xff0c;所以把自己的解决办法记录一下分享给兄弟们 <plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.4</vers…

KT来袭,打造沉浸式体验的聚合性web3应用平台

随着步入 2024&#xff0c;漫长的区块链熊市即将接近尾声。纵观产业发展&#xff0c;逆流而上往往会是彰显品牌市场影响力和技术实力的最佳证明。在这次周期中&#xff0c;一个名为KT的web3.0聚合平台吸引了市场关注&#xff0c;无论在市场层面还是技术层面&#xff0c;都广泛赢…

【计算机三级-数据库技术】数据库后台编程技术

内容提要 1、掌握存储过程的定义与使用 2、掌握用户定义函数的创建与使用 3、掌握触发器的定义与使用 4、掌握游标的定义与使用 第一节 存储过程 使用T-SQL语言编写&#xff0c;有两种方式存储&#xff1a; 在客户端存储代码通过客户端程序或SQL命令向DBMS发出操作请求&…

JavaScript中设置器和获取器

在JavaScript中&#xff0c;setters 和 getters 是对象属性的特殊方法&#xff0c;用于定义如何访问和设置对象的属性。这些方法使得可以在对对象属性执行读取或写入操作时添加自定义逻辑。 举例 首先我们定义一个类似之前银行家的一个对象 const account {owner: ITshare,…

【Redis】数据结构和内部编码

数据结构和内部编码 type 命令实际返回的就是当前键的数据结构类型&#xff0c;它们分别是&#xff1a;string&#xff08;字符串&#xff09;、list&#xff08;列表&#xff09;、hash&#xff08;哈希&#xff09;、set&#xff08;集合&#xff09;、zset&#xff08;有序集…

模拟笔试 - 卡码网周赛第三十一期(23年百度笔试真题)

难度适中&#xff0c;动态规划出现的比例还是比较高的&#xff0c;要好好掌握&#xff0c;二分查找的点也是比较灵活的。&#xff08;A卷和B卷第一道题是一样的&#xff09; 题目一&#xff1a;讨厌鬼的组合帖子 思路&#xff1a;这个题算是一个还不错的题&#xff1b; 本质就…

ES 支持乐观锁吗?如何实现的?

本篇主要介绍一下Elasticsearch的并发控制和乐观锁的实现原理&#xff0c;列举常见的电商场景&#xff0c;关系型数据库的并发控制、ES的并发控制实践。 并发场景 不论是关系型数据库的应用&#xff0c;还是使用Elasticsearch做搜索加速的场景&#xff0c;只要有数据更新&…

Java导出分类到Excel

需求 在一般需求中点击导出按钮可以把所有的分类导出到Excel文件中。 技术方案 使用EasyExcel实现Excel的导出操作。 https://github.com/alibaba/easyexcel https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write#%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81…

【计算机方向】三本中科院SCI宝刊,国人占比高,发文友好,门槛低,毕业靠它了!

本期将为您带来五本计算机SCI 妥妥毕业神刊&#xff01; ARTIFICIAL INTELLIGENCE REVIEW AUTONOMOUS ROBOTS Cognitive Computation 期刊名称&#xff1a;ARTIFICIAL INTELLIGENCE REVIEW 期刊简介&#xff1a; 发布对该领域的应用、技术和算法的批判性评估。 为研究人员…