【工具与中间件】Linux-Docker-Redis

文章目录

  • 0. 前言
  • 1. Linux 下 安装 Docker
    • 1.1 Docker 基本概念
    • 1.2 Linux 安装 Docker
      • 1.2.1 安装
      • 1.2.2 Hello World
    • 1.3 Docker 常用命令
      • 1.3.1 系统启动/暂停/卸载 docker
      • 1.3.2 docker 容器的增/删/停/查看状态
      • 1.3.3 小结
    • 1.4 Docker 可视化工具推荐
  • 2. Docker 下 安装 Redis
    • 2.1 Redis 基本概念
      • 2.1.1 Redis 是什么
      • 2.1.2 Redis 常见数据结构
    • 2.2 Docker 下安装 Redis
    • 2.3 Redis 常用命令
    • 2.4 Redis 可视化工具推荐
  • 3. 总结

当你翻旧物发现了宝贝......

0. 前言

某天秋高气爽(emmm,发文时可能已立冬了),风和日丽,广东这边一如既往地闷热(成功水字一行,手动emoj)。闲来无事,打开尘封已久的服务器一看,嗯,风平浪静,并没有受到攻击。于是,我就想着看看能不能在这台服务器搞点什么东西,做个项目学习一下。

一般web项目缓存都会用到redis,那就先从配一个redis开始吧!现在流行用 docker 配置,正准备下载 docker 呢, 随手 docker images 一下,好家伙,原来不知道什么时候已经有了(云服务器送的? 还是哪天我乱搞搞上去的?)不记得,不管了,那咱就直接docker 下 安装 redis 吧!

当然了,为了更好地水一水字数,下文还是会提一下 Docker 及 Redis 的一些基本概念,方便自己及各位读者大大后续学习。

学习目标
Docker 下 安装 Redis, 并能访问。后续可根据本次 Docker 配置 及 Redis 下载,对 Docker 以及 Redis 进行更深入学习,并将其运用到个人项目中。

参考教程

  • 知乎-优秀参考教程
  • Worktile-Docker三大核心概念
  • bilibili-优秀参考教程
  • docker官网
  • 51CTO-优秀参考博客
  • 腾讯云Docker安装Redis

1. Linux 下 安装 Docker

1.1 Docker 基本概念

本小节我们介绍 Docker 的基本概念。

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 ——《百度百科》

其中,Docker 有 三大核心概念: 仓库、镜像、容器,我们必须了解,便于日后更深入的学习:

仓库
仓库类似于我们常用的代码仓库,与 Maven 仓库、 Git Hub 等类似,此处主要指 docker hub,远程仓库。仓库的贡献者是全世界的程序员,我们的镜像主要从仓库中拉取。一般常用的镜像拉取下来之后都是开箱即用。

镜像
docker 镜像类似于虚拟机镜像。docker 镜像 提供了虚拟机运行所需的库、资源、配置等文件,也提供了许多运行时参数。

从我个人对各类镜像的使用体验看来,我个人将镜像看作是一个大点的安装包,像是系统镜像。仅从使用的角度,我们把它当作安装包就好了。

容器
容器也类似于我们常见的容器概念。每个容器是独立的,互不干扰。当然如果特定需求要让不同容器里的不同服务相互产生联系也不是不行,需要另寻解决方案。就像是我们生活中衣柜、文件柜等都可以看作一个个容器,一般情况下,根据用途分门别类放置物品。
其中,docker 容器 由docker 镜像生成。从严格意义上来说,镜像层是只读的,docker 在镜像层上层 创建一个可写层,镜像本身不变。

上次公司内部培训,我一位师兄作为讲师,他是这么教我们的:看Docker 的 LOGO 多像集装箱,相互独立,互不影响,里面装的货物都能各自使用。 这是因为每个 docker 容器 里跑的是一个个虚拟机,镜像在虚拟机里运行,就像是我们在 Windows 安装的 VMware。 至于获取镜像的仓库,类似于Maven、某Hub等远程仓库,里面放了很多大家做好的镜像,拉下来用即可。

以上概念太多不好理解?在深入学习之前,我们可以先收藏 Docker 三大核心概念,然后 简单地 理解: Docker 是一些大佬做的工具,我们重点学习的是如何使用这个工具。

至于 Docker 更深入的概念,篇幅有限,下次我们再一起学习吧!

1.2 Linux 安装 Docker

虽然俺的服务器已安装了Docker,但来都来了,怎么样也得给兄弟们重新安装一遍,争取一文会用 Docker 嘛。

1.2.1 安装

我的是CentOS,按照官网提示,CentOS docker 键入如下命令安装:

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

当然,由于网络、yum工具没有及时更新等原因,直接使用官网给的命令下载不一定成功,此时,我们可选用一些其它参考文章推荐的安装方式,例如:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

安装成功后,执行 docker -v命令,若成功输出 docker 版本,则安装成功。

docker -v
Docker version 24.0.7, build afdd53b

1.2.2 Hello World

程序员的第一句代码都是hello world,docker 也不例外。已有大佬在docker 仓库上打包好了 hello world 镜像。在正式开始学习 docker 常用命令之前,我们先走个流程运行 hello world镜像吧!

启动docker
初次使用docker ,很有可能会因为系统并没有运行docker 而导致 执行 docker 命令时报 Cannot Connect to the Docker Daemon at ‘unix:///var/run/docker.sock, 此时我们先启动docker 就可解决

# 启动docker
[root@localhost ~]# systemctl start docker# 查看docker 状态
[root@localhost ~]# systemctl status docker

拉取hello-world镜像

docker pull hello-world

出现以下说明成功:


[root@localhost ~]# docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:88ec0acaa3ec199d3b7eaf73588f4518c25f9d34f58ce9a0df68429c5af48e8d
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

跑一跑hello-world

docker run hello-world

效果:

[root@localhost ~]# docker run hello-worldHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/

执行成功,欢迎来到 docker 的世界!

1.3 Docker 常用命令

好了,现在我们有了Docker,在正式拉取我们所需的镜像之前,我们先熟悉一下Docker 常用命令吧!

1.3.1 系统启动/暂停/卸载 docker

要让 docker 根据我们的需求(一般都是开机自启)如期启动运行,首先我们要从系统层面设置 docker 开机自启:

# 启动Docker
systemctl start docker
# 停⽌Docker
systemctl stop docker
# 重启
systemctl restart docker
# 设置开机⾃启
systemctl enable docker

若是 docker 由于某些原因损坏,需要重装,那么可参考以下卸载命令:

yum remove docker

1.3.2 docker 容器的增/删/停/查看状态

docker 常见命令。篇幅有限,本小节只介绍相关命令,至于命令的细节,如命令的各参数,读者请自行查阅。

相关命令

# 拉取镜像
docker pull# 推送镜像到Docker Registry
docker push# 查看本地镜像
docker images# 删除本地镜像
docker rmi # 创建并运行容器
docker run# 停止指定容器
docker stop# 启动指定容器
docker restart# 删除指定容器
docker rm# 查看容器
docker ps# 查看容器运行日志
docker logs# 进入容器
docker exec# 保存镜像到本地压缩文件
docker save# 加载本地压缩文件到镜像
docker load# 查看容器详细信息
docker inspect

细心的同学可能发现了,除了要加上 docker 前缀,以及 部分参数可能要遵循 docker 的规则,docker 的大部分命令与 Linux 命令很像。触类旁通。

实践
我们可以将上文提到的hello-world 进行 docker 命令的练习。此处给个我个人练习的示例 :

[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE         COMMAND    CREATED       STATUS                   PORTS     NAMES
8b039b88c24c   hello-world   "/hello"   4 hours ago   Exited (0) 4 hours ago             gracious_mcclintock
[root@localhost ~]# docker rm 8b039b88c24c
8b039b88c24c
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
redis         latest    7f27d60cb8e0   12 days ago    138MB
hello-world   latest    9c7a54a9a43c   6 months ago   13.3kB
[root@localhost ~]# docker rmi 9c7a54a9a43c
Untagged: hello-world:latest
Untagged: hello-world@sha256:88ec0acaa3ec199d3b7eaf73588f4518c25f9d34f58ce9a0df68429c5af48e8d
Deleted: sha256:9c7a54a9a43cca047013b82af109fe963fde787f63f9e016fdc3384500c2823d
Deleted: sha256:01bb4fce3eb1b56b05adf99504dafd31907a5aadac736e36b27595c8b92f07f1
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
redis        latest    7f27d60cb8e0   12 days ago   138MB
[root@localhost ~]#

哈哈,上述例子 redis 偷跑了(这是本文第二个主题,也是我本人原本要的目标镜像与容器),没关系,在下一小节我们依然会介绍docker 下载 redis, 并简要介绍 redis 相关 概念

1.3.3 小结

Docker 除了可以拉取仓库上的镜像并创建容器,还可以将自己的项目制作成镜像并在容器里启动。

至于 Docker 更高级的用法,篇幅有限,请读者留意工作中的小确幸,自行体验。

1.4 Docker 可视化工具推荐

命令敲烦了?命令太多记不住?没关系,Docker 可视化工具来帮你。
本小节我们推荐两个常用的 Docker 可视化工具。

  • 微软官方教程-Windows docker
  • 简书社区优秀教程-portainer

至于更多优秀的可视化工具,篇幅有限,请读者自行发掘。

2. Docker 下 安装 Redis

2.1 Redis 基本概念

本小节我们介绍 Redis 的基本概念。

2.1.1 Redis 是什么

Redis是一种高性能的开源内存数据库,它主要用于缓存、数据存储和消息传递。Redis的基本原理是将数据存储在内存中,以提供快速的读写操作。它使用键值对的方式存储数据,并支持多种数据结构,如字符串、哈希、列表、集合和有序集合等。Redis还具有持久化的能力,可以根据不同的持久化策略将数据定期写入磁盘,以防止数据丢失。此外,Redis还支持发布/订阅模式,允许不同的应用程序之间进行实时消息传递。

实际工作中,我们常用 Redis 来进行缓存。除此之外,使用 Redis 还能实现单点登录、MQ等功能,甚至可当作数据库存储数据。

2.1.2 Redis 常见数据结构

Redis 常见的数据结构有:

  • 字符串String:由于串的特性,字符串的访问速度非常快。常用于缓存用户名、邮箱地址等信息。
  • 列表List:Redis 的列表是有序列表,每个元素都有自己索引。常用于缓存任务队列、消息队列。
  • Set: 类似于我们常见的Set,每个元素不重复。常用于存储一些tag等非重复信息。
  • Soorted Set: 有序集合, 可以实现排序、排名等功能。
  • 哈希表Hash: 键值对,可以用它来实现灵活的数据结构。常用于缓存用户信息、物品信息等。

至于 Redis 更深入的概念,及常见面试题,篇幅有限,请读者自行查阅。

2.2 Docker 下安装 Redis

有了上面一个章节的铺垫,docker 安装 Redis 就轻松了许多!本小节就当作是 docker 实战演练吧!

Docker 拉取 Redis

# 走流程,查看 Redis
docker search redis# 拉取 latest 版本 Redis
docker pull redis# 拉取完毕后查看镜像
docker images

以下是我个人执行的效果:

[root@localhost ~]# docker pull redis
Using default tag: latest
latest: Pulling from library/redis
578acb154839: Already exists
9a217a51793f: Pull complete
07058ed9ec8f: Pull complete
d3ba9a132495: Pull complete
adeece162a71: Pull complete
4f4fb700ef54: Pull complete
7018b7448b70: Pull complete
Digest: sha256:ac4e8dd2fed59eddba2805411db8664f5fd69a64f33303f3b8fec79abd4ff97a
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
redis        latest    e10bd12f0b2d   5 days ago    138MB

Redis 配置
这一段我们参考本文开头的参考教程来:
这里主要的步骤是将Redis的配置文件进行挂载,以配置文件方式启动Redis容器。这里涉及一个概念挂载:将宿主机的文件和容器内部目录相关联,相互绑定。

(1) 创建redis相关目录

[root@localhost /]# mkdir -p /home/redis/myredis
[root@localhost /]# cd /home
[root@localhost home]# ls
redis  sharry
[root@localhost home]# cd redis
[root@localhost redis]# ls
myredis
[root@localhost redis]# cd myredis/
[root@localhost myredis]# mkdir data

(2) 编辑/上传conf文件

# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
# bind 127.0.0.1protected-mode noport 6379tcp-backlog 511requirepass 000415timeout 0tcp-keepalive 300daemonize nosupervised nopidfile /var/run/redis_6379.pidloglevel noticelogfile ""databases 30always-show-logo yessave 900 1
save 300 10
save 60 10000stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump.rdbdir ./replica-serve-stale-data yesreplica-read-only yesrepl-diskless-sync norepl-disable-tcp-nodelay noreplica-priority 100lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush noappendonly yesappendfilename "appendonly.aof"no-appendfsync-on-rewrite noauto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mbaof-load-truncated yesaof-use-rdb-preamble yeslua-time-limit 5000slowlog-max-len 128notify-keyspace-events ""hash-max-ziplist-entries 512
hash-max-ziplist-value 64list-max-ziplist-size -2list-compress-depth 0set-max-intset-entries 512zset-max-ziplist-entries 128
zset-max-ziplist-value 64hll-sparse-max-bytes 3000stream-node-max-bytes 4096
stream-node-max-entries 100activerehashing yeshz 10dynamic-hz yesaof-rewrite-incremental-fsync yesrdb-save-incremental-fsync yes

(3) 启动容器

docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis                -v /home/redis/myredis/myredis.conf:/etc/redis/redis.conf -v /home/redis/myredis/data:/data -d redis redis-server /etc/redis/               redis.conf  --appendonly yes  --requirepass password

(4) 查看Redis容器状态

docker ps -a
docker ps -a |grep myredis
docker exec -it myredis redis-cli

上述命令若有正确返回,且进入Redis容器后启动 cli 并输入密码后能正常操作,则说明成功。

好嘞,至此我们 docker 下载并配置 redis 完成!接下来,我们可以愉快地使用了!对于初学或想快速回顾的读者,下文我还提了一些 Redis 相关概念(凑字数),欢迎继续阅读 ~

2.3 Redis 常用命令

以下简单介绍 Redis 常用命令。 一般情况下, Redis 的使用频次没有 SQL 多,如非面试,也无需硬记,当作字典,用到的时候再查即可。

* SET key value:设置 key 的值为 value。 
* GET key:获取 key 的值。 
* INCR key:将 key 的值加 1。 
* DECR key:将 key 的值减 1。 
* LPUSH key value:将 value 插入到列表 key 的表头。 
* RPUSH key value:将 value 插入到列表 key 的表尾。 
* LRANGE key start stop:获取列表 key 中 start 至 stop 之间的元素。 
* SADD key member:将 member 添加到集合 key 中。 
* SMEMBERS key:获取集合 key 中的所有元素。 
* SCARD key:获取集合 key 的元素个数。 
* HSET key field value:将 field 的值设置为 value 。 
* HGET key field:获取 field 的值。 
* HKEYS key:获取 key 中所有的 field。 
* HMGET key field1 field2 ...:获取 key 中多个 field 的值。 
* HMSET key field1 value1 field2 value2 ...:同时设置多个 field 的值。 
* HDEL key field1 field2 ...:删除 key 中多个 field。 
* HLEN key:获取 key 中 field 的个数。 
* INCRBY key increment:将 key 的值加上 increment。 
* DECRBY key decrement:将 key 的值减去 decrement。 
* EXPIRE key seconds:设置 key 的过期时间为 seconds 秒。 
* TTL key:获取 key 的剩余过期时间(以秒为单位)。 
* KEYS pattern:获取所有符合 pattern 的 key。 
* FLUSHDB:清空当前数据库。 
* FLUSHALL:清空所有数据库。

至于 Redis 更高级的用法,以及常用的结合工具包,让我们在项目中可以用代码操作redis,及常见面试题,篇幅有限,请读者自行查阅。

2.4 Redis 可视化工具推荐

命令敲烦了?命令太多记不住?没关系,Redis 可视化工具来帮你。
本小节我们推荐一下两个常用的 Docker 可视化工具。

  • RESP.app

    CSDN-RESP-redis可视化管理工具优秀参考博文

  • Another Redis Desktop Manager

    CSDN-Another Redis Desktop Manager优秀参考博文

至于更多优秀的可视化工具,篇幅有限,请读者自行发掘。

3. 总结

本文主要介绍一次个人无意中发现了自己原来有台服务器以及安装了Docker,本着物尽其用的原则实操 Linux OS 下载Docker、 Docker 的基本使用(入门)、Docker 下安装Redis(实战)并记录成此文。

顺便简要介绍了一下 Docker 、 Redis 这两个工作中常用工具的概念,以便快速入门或回顾。当作是买一送一,供读者参考。

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

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

相关文章

上海亚商投顾:北证50指数大涨 机器人概念股掀涨停潮

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 三大指数昨日震荡反弹,黄白二线有所分化,题材热点轮动表现。北证50指数大涨超3%&#…

11 redis中分布式锁的实现

单机锁代码 import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.con…

前端国内镜像环境安装网址

git https://registry.npmmirror.com/binary.html?pathgit-for-windows/ 2.42.0 node 中文官方地址: http://nodejs.cn/download/ 阿里云镜像地址为: https://npm.taobao.org/mirrors/node/v14.6.0/

el-table 表格表头、单元格、滚动条样式修改

.2023.11.21今天我学习了如何对el-table表格样式进行修改&#xff0c;如图&#xff1a; 运用的两个样式主要是 1.header-cell-class-name&#xff08;设置表头&#xff09; 2.class-name&#xff08;设置行单元格&#xff09; 代码如下&#xff1a; <el-table :data&quo…

主播产品话术

以电子产品为例 一、产品特点 1.高效性能:这款产品采用了最先进的技术&#xff0c;确保高效运行&#xff0c;让你的工作更加流畅。 2.便捷操作:设计简洁&#xff0c;操作方便&#xff0c;即使是不熟悉电子产品的人也能轻松上手。 3.时尚外观:多种颜色可选&#xff0c;满足你…

springboot+bootstrap+java农业电商服务商城系统_30249

本农业电商服务系统是为了提高用户查阅信息的效率和管理人员管理信息的工作效率&#xff0c;可以快速存储大量数据&#xff0c;还有信息检索功能&#xff0c;这大大的满足了管理员、会员和商家这三者的需求。操作简单易懂&#xff0c;合理分析各个模块的功能&#xff0c;尽可能…

Cpolar - 本地 WebUI 账号登录失败解决方案

遇到这个问题是因为估计之前登录过其他账号导致的&#xff0c;那如何解决呢&#xff1f; 原因分析 因为之前历史账号登录过一次&#xff0c;本地配置信息里会残留&#xff0c;所以只要去除即可 解决方案 Windows 系统为例&#xff0c;MacOS 系统同理可得 找到 cpolar 配置文件…

【python学习】基础篇-常用模块-multiprocessing模块:多种进程间通信

multiprocessing模块提供了多种进程间通信方式&#xff0c;以下是一些常用的方法&#xff1a; 1、Queue: 创建一个队列对象&#xff0c;用于在进程之间传递数据。可以设置队列的最大长度和阻塞时间等选项。 from multiprocessing import Process, Queuedef worker(q):q.put(h…

实时云渲染 助力破解智慧园区痛点困局

智慧园区是运用先进的信息技术&#xff0c;如物联网&#xff08;IoT&#xff09;、大数据、云计算、人工智能、三维可视化等&#xff0c;对园区内的各类设施、资源以及管理进行智能化和数字化升级。其目标是通过科技手段提升园区的运营效率、资源利用率&#xff0c;提供更便捷、…

什么是软件需求?以及需求的最佳实践?

什么是软件需求 业务需求是反应企业组织对软件系统的高层次目标要求&#xff0c;换句话说就是软件系统的建设目标&#xff0c;常常体现在这两个方面&#xff1a;问题和机会。 要记住&#xff1a;出发点不同&#xff0c;精神面貌就完全不一样&#xff0c;当然如果目标过于夸大也…

机器人算法—ROS TF坐标变换

1.TF基本概念 &#xff08;1&#xff09;什么是TF&#xff1f; TF是Transformations Frames的缩写。在ROS中&#xff0c;是一个工具包&#xff0c;提供了坐标转换等方面的功能。 tf工具包&#xff0c;底层实现采用的是一种树状数据结构&#xff0c;根据时间缓冲并维护多个参考…

在AWS VPC中运行Nagios检查时指定自定义DNS解析器的选项

在AWS VPC中运行Nagios检查&#xff0c;并希望能够指定自定义DNS解析器来处理请求。我想使用Python requests库来实现这个目标。 根据问题描述&#xff0c;您想在AWS VPC中运行Nagios检查&#xff0c;并希望使用Python的requests库来指定自定义DNS解析器。 要解决这个问题&…

获取当前用户信息的几种方式

说明&#xff1a;在开发中&#xff0c;我们经常需要获取当前操作的用户信息&#xff0c;如创建用户、创建订单时&#xff0c;我们需要记录下创建人&#xff0c;本文介绍获取当前用户信息的三种方式。 方式一&#xff1a;使用ThreadLocal ThreadLocal本质上是一个Map&#xff…

一个c语言的hello world的本质是什么?

文章目录 hello world程序源文件的本质是0和1hello world文件的ASCII表示程序被其他程序翻译成不同的格式预处理阶段编译阶段汇编阶段链接阶段 为什么需要了解编译系统的工作原理&#xff1f;优化程序性能理解链接时出现的错误避免安全漏洞 参考 hello world 程序源文件的本质是…

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Mybatis初识和框架搭建

第一章 初识Mybatis 1.1 框架概述 生活中“框架” 买房子笔记本电脑 程序中框架【代码半成品】 Mybatis框架&#xff1a;持久化层框架【dao层】SpringMVC框架&#xff1a;控制层框架【Servlet层】Spring框架&#xff1a;全能… 1.2 Mybatis简介 Mybatis是一个半自动化持久化…

银行业数据分析算法应用汇总

数据分析在银行业的应用及具体案例 一、欺诈检测二、客户细分三、风险建模四、营销优化五、信用评分六、客户流失预测七、推荐引擎八、客户生命周期价值预测 一、欺诈检测 欺诈检测即通过分析交易模式&#xff0c;检测可能的欺诈行为&#xff0c;主要有以下几个方面 1.跨机构开…

接口304 Not Modified

当客户端向服务端发送HTTP请求时&#xff0c;如果服务端返回状态码为304 Not Modified&#xff0c;则表明此次请求为条件请求。这意味着客户端已经缓存了该资源&#xff0c;并且该资源未被修改。在请求头中&#xff0c;客户端会发送两个请求参数&#xff1a;If-Modified-Since和…

Django 创建项目时找不到数据库sqlite3

原因:PyCharm创建Django项目,找不到数据库sqlite3 解决&#xff1a;如果没有默认的db文件&#xff0c;则应在PyCharm终端中执行以下命令&#xff1a; python manage.py makemigrations python manage.py migrate

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《就地无常规电源支撑下考虑新能源基地频率稳定的储能优化配置方法》

这个标题涉及到一个关于新能源基地频率稳定的储能优化配置方法的主题。让我们逐步解读&#xff1a; 就地无常规电源支撑下&#xff1a; 就地 (On-site): 意味着在特定地点或场地进行操作&#xff0c;而不是依赖外部地点的资源。无常规电源 (Non-conventional Power): 指的是不传…

python报错ModuleNotFoundError: No module named ‘docx‘解决方案

python报错ModuleNotFoundError: No module named docx解决方案 执行报错分析原因解决方案 执行报错 ModuleNotFoundError: No module named ‘docx’ pip install docx 后报错 分析原因 导错包了&#xff0c;不是docx而是python-docx 解决方案 卸载安装错的 docx pip uni…