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

医院信息化与智能化系统(11)

医院信息化与智能化系统(11)

这里只描述对应过程,和可能遇到的问题及解决办法以及对应的参考链接,并不会直接每一步详细配置
如果你想通过文字描述或代码画流程图,可以试试PlantUML,告诉GPT你的文件结构,让他给你对应的代码

预约挂号微服务模块搭建

前端知识点补充,此章节不会详细讲具体前端的每个知识点

1、添加缓存

添加缓存时为了提高查询速度,一些不经常修改固定的数据经常查询的数据适合去做缓存

使用Spring Cache +Redis 缓存数据

第一步是在service-util模块添加相关依赖,因为缓存也是公共使用,所有的service模块都有可能使用缓存。

spring-boot-starter-data-redis 是 Spring Boot 提供的一个启动器,用于简化 Spring Data Redis 的配置和使用。它集成了 Redis 的基本功能,让开发者能够更方便地操作 Redis 数据库,包括对键值对的读写操作、数据缓存等。

commons-pool2 是一个通用的对象池库。它提供了创建和管理对象池的功能,可以用来提高资源的复用性,减少对象的创建和销毁开销。在 Spring Data Redis 中,commons-pool2 通常用于管理 Redis 连接池,以提高 Redis 连接的效率和性能。·

第二步在config文件夹下添加配置类RedisConfig

添加注解@EnableCaching,表示支持缓存

方法1:public KeyGenerator keyGenerator()

这个方法定义了一个自定义的 KeyGenerator,通常在 Spring 的缓存配置中使用。KeyGenerator 接口用于生成缓存键,以便在缓存中唯一标识每个缓存项。

生成键的逻辑:

  • 首先,使用 StringBuilder 创建一个字符串。
  • 将目标对象的类名和方法名添加到字符串中。
  • 然后,将所有参数的字符串形式拼接到这个字符串后面。
  • 最终,这个字符串将作为缓存的键返回。

方法2:public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)

该方法配置了一个 RedisTemplate,使其能够连接 Redis 数据库并使用 JSON 格式存储和读取对象。这种配置非常适合在 Spring Boot 应用中使用 Redis 进行数据缓存和存储时,确保对象可以方便地序列化和反序列化。

方法3: public CacheManager cacheManager(RedisConnectionFactory factory)

该方法配置了一个使用 Redis 作为缓存存储的 CacheManager,为应用程序提供了高效的缓存功能。通过 JSON 格式序列化对象,避免了乱码问题,同时设置了过期时间,确保缓存数据的及时更新。这样配置后的缓存管理器可以用于处理缓存数据的读写操作,提高应用的性能和响应速度。

在service-cmn模块的配置文件application.properties添加redis配置,(端口号IPRedis数据库编号(Redis 默认有 16 个数据库,索引从 0 到 15))

如果方法2、3有编译报错,在其上添加注解 @SuppressWarnings("all")

Xshell–Redis操作

首先默认之前Redis配置都配置好了,包括下载、解压、设置IP、连接Xshell

使用cd命令进入Redis目录 (我的是cd /opt)

随后启动服务:redis-server /myredis/redis7.conf

查看与 Redis 相关的进程 ps -ef | grep redis

在这里插入图片描述
随后输入redis-cli -a xxx -p 6379 命令其中xxx是你设置的密码

使用Spring Cache

注解功能描述适用场景
@Cacheable从缓存中获取数据,如果缓存中没有,则执行方法并将结果放入缓存查询操作,尤其是频繁读取但不常修改的数据
@CachePut每次执行方法时都将结果放入缓存,不会检查缓存更新操作,需要确保缓存与数据库保持一致
@CacheEvict清除缓存中的数据删除操作,或需要更新缓存时

首先在DictServiceImpl类观察findChildData方法,在它上面添加@Cacheable(value = "dict",keyGenerator = "keyGenerator")注释,如果keyGenerator 编译报错,可能是导入的包不对,应该是:

import org.springframework.cache.annotation.Cacheable;

其中

  • value = "dict":指定缓存的名称为 “dict”
  • keyGenerator = "keyGenerator":指定自定义的键生成器为 “keyGenerator”。这意味着在缓存时,缓存的键将通过名为 keyGenerator 的 Bean 生成。

importDictData方法上添加注释@CacheEvict(value = "dict", allEntries=true),执行该方法时清除指定缓存区域 dict中的所有条目

测试:如果redis拒绝访问

1、在Linux终端关闭防火墙

  • systemctl status firewalld.service查看防火墙状态
  • systemctl disable firewalld.service 关闭防火墙

2、更改redis.conf配置

  • bind 0.0.0.0
  • protected-mode no

3、更改虚拟机网络设置为桥接模式

这一步非常的重要,桥接模式是可以允许外界访问虚拟机的,我是根据该视频进行配置

其中里面关于BOOTPORTO设置为static,使得虚拟机IP为静态。

测试结果:
key命名规则:包名+类名+方法名
在这里插入图片描述

2、配置nginx

service-hosp占用接口为8201,而service-cmn占用的接口为8202,端口不一致导致前端想同时调用这两个模块成了问题。

这里使用windows版本nginx-1.12.0

解压后打开conf\nginx.conf,在http{}内添加该段代码:

listen 9001:该虚拟服务器监听本地的 9001 端口

server_name localhost:指定服务器名称为 localhost。

location ~ /hosp/:匹配所有以 /hosp/ 开头的请求路径。这些请求会被转发(反向代理)到 http://localhost:8201

...
server {listen       9001;server_name  localhost;location ~ /hosp/ {           proxy_pass http://localhost:8201;}location ~ /cmn/ {           proxy_pass http://localhost:8202;}
}

在终端进入nginx-1.12.0文件并输入命令nginx.exe(不要关闭终端),在前端修改服务端口:

BASE_API: '"http://localhost:9001"'

并在后端同时启动service.hospservice.cmn

3、MongoDB

首先在Linux安装Docker

安装Docker具体步骤

  1. 首先确保Linux安装了gcc编译环境以及对应c++库环境(之前有讲解)

  2. 安装需要的软件包
    yum install -y yum-utils

  3. 设置stable镜像仓库
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  4. 更新yum软件包索引
    yum makecache fast

  5. 安装Docker CE
    docker-ce docker-ce-cli containerd.io

  6. 启动Docker
    systemctl start docker
    ps -ef|grep docker

注意事项:使用docker的pull,因为是国外网站,所以很容易就报错

docker:docker: Get https://registry-1.docker.io/v2/: net/http: request canceled

解决方法1:找一个好的镜像网站,随后配置到/etc/docker/daemon.json文件

解决方法2:给Docker | 虚拟机配置代理,这是给Docker配置的教程(前提需要有代理)[记得把windows防火墙关了!]

建议配置时,用本机网络IP配置,不要用127.0.0.1

Monge安装

  1. 拉取镜像
    docker pull mongo:latest 下载
  2. 创建和启动容器
    docker run -d --restart=always -p 27017:27017 --name mymongo -v /data/db:/data/db -d mongo
  3. 进入容器
    docker exec -it mymongo /bin/bash 这里mymongo和 /bin之间有一个空格,不能忽略
    4.进入monge
    mongo| mongosh 6.0以上用后面的命令

http://www.mrgr.cn/news/60557.html

相关文章:

  • [MySQL#3] 数据约束 | 数值类 | varchar | timestamp | enum vs set
  • 关于嵌入式学习的一些短浅经验
  • 关于算法的时间复杂度和空间复杂度的分析
  • 【Linux】————磁盘与文件系统
  • 顺序表总结
  • 基于Arduino的LED亮灭按键控制
  • 阳振坤:云时代数据库的思考 | OceanBase发布会实录
  • 【高级IO】IO多路转接之epoll
  • 移植FreeRTOS实时操作系统(基于STM32F429)
  • Java运行时数据区
  • C++基础三
  • 华为大咖说丨如何通过反馈机制来不断优化大模型应用?
  • 销售拓客秘籍:线上渠道探寻与选择
  • 2024年【北京市安全员-A证】找解析及北京市安全员-A证考试试卷
  • 一周倒计时!2024中山智能家居峰会议程揭晓
  • 深入理解数据链路层:以太网帧格式、MAC地址、交换机、MTU及ARP协议详解与ARP欺骗探究
  • 300元蓝牙耳机性价比高的有哪些?学生平价蓝牙耳机推荐
  • 10位三维设计如何共享工作站算力和软件
  • Instagram如何加特效?轻松打造个性化动态效果的实用指南
  • ChatGPT:从发布到全球大热,仅用一年多的传奇之旅
  • pgloader的简单数据迁移教程
  • 推荐一款好用的redis管理工具TinyRDM
  • 三维模型加载慢的问题优化
  • 置换环模板题E - Permute K times 2
  • 数字后端零基础入门系列 | Innovus零基础LAB学习Day7
  • 深度剖析美区代理IP的多元应用与优势