瑞吉外卖LinuxRedis

news2024/11/18 1:50:58

1、linux简介

Linux系统版本
Linux系统分为内核版发行版
内核版:
        由LinusTorvalds及其团队开发、维护
        免费、开源
        负责控制硬件
发行版:
        基于Linux内核版进行扩展
        由各个Linux厂商开发、维护
        有收费版本和免费版本

2、linux安装

Linux系统的安装方式
物理机安装:直接将操作系统安装到服务器硬件上
虚拟机安装:通过虚拟机软件安装
 

3、网卡

ip addr

 3.1网卡设置

 3.2安装SSH连接工具

SSH(Secureshell),建立在应用层基础上的安全协议

企业linux安装在服务器上,需要我们远程连接。

使用:xshell

4、目录介绍

5、安装方式 

 5.1安装jdk

//注意jdk的位置
JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH

 5.2安装Tomcat

 5.2.1验证是否成功


 

5.2.2防火墙操作

查看防火墙状态

systemctl status firewalld

firewall-cmd --state


暂时关闭防火墙

systemctl stop firewalld


永久关闭防火墙

systemctl disable firewalld


开启防火墙

systemctl start firewalld


开放指定端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent


关闭指定端口

firewall-cmd --zone=public --remove-port=8080/tcp --permanent


立即生效

firewall-cmd --reload


查看开放的端口

firewall-cmd --zone=public --list-ports

注意:
1、systemct是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作
2、firewall-cmd是Linux中专门用于控制防火墙的命令
3、为了保证系统安全,服务器的防火墙不建议关闭




5.2.3停止Tomcat服务的方式:

①运行Tomcat的bin目录中提供的停止服务的脚本文件shutdwnoch

sh shutdown.sh

./shutdown.sh

②结束Tomcat进程
查看Tomcat进程,获得进程id

 ps -ef | grep tomcat


 

注意:
kill 命令是Linux提供的用于结束进程的命令,-9表示强制结束


 5.3安装MySQL

①:检测当前系统中是否安装MySQL数据库

rpm -qa

查询当前系统中安装的所有软件

rpm -qa | grep mysql
查询当前系统中安装的名称带mysql的软件


rpm -qa | grep mariadb
查询当前系统中安装的名称带mariadb的软件

RPM(Red-HatPackageManager)RPM软件包管理器,是红帽Linux用于管理和安装软件的工具
注意事项:

如果当前系统中已经安装有MySQL数据库,安装将失败。Centos7自带mariadb,与MySQL数据库冲爽
 ②:卸载已经安装的冲突软件

rpm -e --nodeps 软件名称                 卸载软件
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.×86_64

③:将资料中提供的MySQL安装包上传到Linux并解压

mkdir /usr/loca/mysql
tar-zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz-c /usr/local/mysql
 

 ④:按照顺序安装rpm软件包

rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
yum install net-tools
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm


检测依赖失败:

因为yum安装了旧版本的gpg keys造成的

给后缀添加"--force --nodeps"即可

eg:

 rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm --force --nodeps

说明1:安装过程中提示缺少net-tools依赖,使用yum安装
说明2:可以通过指令升级现有软件及系统内核

yum update 

⑤:启动mysql(注意不要粘贴空格)

systemctl status mysqld                 查看mysql服务状态
systemctl start mysqld                        启动mysq服务
systemctl enable mysqld                        开机启动mysq服务

netstat -tunlp或netstat -tunlp l grep mysql           查看已经启动的服务                            
ps -ef | grep mysql                                         查看mysql进程

⑥登录MySQL数据库,查阅临时密码
 

cat /var/log/mysqld.log                查看文件内容
cat /var/log/mysqld.log | grep password                查看文件内容中包含password的行信息

注意:

[Note] A temporary password is generated for root@localhost: IAzt_RVda7sD

冒号后面的是密码,注意空格(不要空格)

⑦:登录MySQL,修改密码,开放访问权限

mysql -uroot -p                                登录mysql(使用临时密码登录)

#修改密码
set global validate_password_length=4;                        设置密码长度最低位数
set global validate_password_policy=Low;       设置密码安全等级低,便于密码可以修改成root
set password = password('root');                        设置密码为root

#开启访问权限
grant all on *.* to 'root'@'%'identified by 'root';
flush privileges;
  刷新权限

⑧:测试MySQL数据库是否正常工作

show databases;

5.4安装lrzsz

1、搜索lrzsz安装包,命令为yum list lrzsz 

2、使用yum命令在线安装,命令为 yum install lrzsz.x86_64

注意: 

Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及CentOs中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁项地一次次下载、安装。
 

6、项目部署


6、1手工部署项目(复杂)

手动打包,上传jar包 。通过命令运行

 ①:在IDEA中开发SpringBoot项目并打成jar包

②:将jar包上传到Linux服务器 

eg:mkdir /usr/local/app
创建目录,将项目jar包放到此目录

③:启动SpringBoot程序

java -jar jar包名字

 ④:检查防火墙,确保8080端口对外开放,访问SpringBoot项目

使用防火墙部分命令

⑤:改为后台运行SpringBoot程序,并将日志输出到日志文件(linux关闭还能运行)

 &>:日志文件名字(当前目录创建)

&:表示程序在后台执行

eg:nohup java -jar jar包名字 &> 日志文件名字 &

目前程序运行的问题:

        a.线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
        b.线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息

⑥:停止SpringBoot程序

查询进程

ps -ef | grep java

删除

kill -9 对应的进程号


6.2通过She脚本自动部署项目


 

 ①:在Linux中安装Git
yum list git               列出git安装包
yum install git                在线安装git

 ②:使用Git克隆代码

cd /usr/local
git clone https://gitee.com/chuanzhiBoke/hellowortd.git

③:将资料中提供的maven安装包上传到Linux,在Linux中安装maven 

tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local/

---------------------------------------------------------------

vim /etc/profile  修改配置文件加入以下内容

export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

---------------------------------------------------------------

source /etc/profile

mvn -version

---------------------------------------------------------------

修改配置文件

vim /usr/local/apache-maven-3.5.4/conf/settings.xml 

如下:

<localRepository>/usr/local/repo</localRepository>

④:将资料中提供的Shel脚本文件复制到Linux

#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程
APP_NAME=helloworld

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Stop Process...'
    kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi

echo 准备从Git仓库拉取最新代码
cd /usr/local/helloworld

echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成

echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`

cd target

echo 启动项目
nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成

 ⑤为用户授权

 

⑦:设置静态ip

修改文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33

⑧重启网络服务

systemctl restart network

 注意:重启完网络服务后ip地址已经发生了改变,此时Finalshell已经连接不上Linux系统
需要创建一个新连接才能连接到Linux。

2、Redis

Redis是一个基于内存key-Value结构数据库。

1、Redis入门

可用作:数据库、缓存和消息中间件。

关系型数据库的补充

Windows版下载地址:https://github.com/microsoftarchive/redis/releases
Linux版下载地址:Index of /releases/ (redis.io)

Linux系统安装Redis步骤:

1.将Redis安装包上传到Linux
2.解压安装包,命令: tar -zxvf redis-4.0.0.tar.gz -C /usr/local
3.安装Redis的依赖环境gcc,命令: yum install gcc-c++
4.进入/usr/local/redis-4.0.0,进行编译,命令:make
5.进入redis的src目录,进行安装,命令:make install        

linux中redis服务启动与停止:

Linux中redi服务启动,可以使用redis-server

默认端口号为6379

Ctrl+C停止Redis服务

后台执行: 主目录下修改配置文件 redis.conf 中daemonize 改为yes

再执行src/redis-server ./redis.conf就是后台运行

其他:

PID:进程

src下redis-cli:连接客户端

编辑模式:/查找内容

修改有密码登录客户端修改redis.conf

添加:requirepass 密码

eg:requirepass 123456

客户端查询登录时:auth 密码 

启动客户端时:src/redis-cli -h localhost -p 6379 -a 密码(123456)

eg:auth 123456

切换数据库默认16个  0--15号

select (dbid)数据库名字 

------------------------------------------------------------------------------------------------------------------------ 

Redis的windows版属于绿色软件,直接解压即可使用,解压后目录结构如下:

2、数据类型

key-Value结构的数据,其中key是字符串类型,value有5种常用的数据类型

3、常用命令


Redis中文网

1、字符串string操作命令

SET key value                设置指定key的值/相同key覆盖之前value
GET key                        获取指定key的值
SETEX key seconds value                设置指定key的值,并将key的过期时间设为seconds秒
SETNX key value                                只有在key不存在时设置key的值

127.0.0.1:6379> set name wyh
OK
127.0.0.1:6379> get name
"wyh"


2、哈希hash操作命令

Redishash是一个string类型的field和value的映射表,hash特别适合用于存储对象
 

HSET key field value                        将哈希表key中的字段field的值设为value
HGET key field                                获取存储在哈希表中指定字段的值
HDEL key field                                删除存储在哈希表中的指定字段
HKEYS key                                        获取哈希表中所有字段
HVALS key                                        获取哈希表中所有值
HGETALL key                        获取在哈希表中指定key的所有字段和值


3、列表list操作命令


4、集合set操作命令


5、有序集合sortedset操作命令

6、通用命令

4、在java中操作Redis

4.1 基本使用

1、Jedis的maven坐标:

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.8.0</version>
</dependency>

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>

2、创建测试类

/**
 * 使用jedis操作Redis
 */
public class JedisTest {

    @Test
    public void testRedis(){
        //1获取连接
        Jedis jedis = new Jedis("localhost",6379);
        //2、执行具体的操作
            //设置
        jedis.set("username","xiaoming");

        String value = jedis.get("username");
        System.out.println(value);

            //删除
        jedis.del("username");

            //hash
        jedis.hset("myhash","addr","bj");
            //获得值
        String hValue = jedis.hget("myhash","addr");
        System.out.println(hValue);

        //查询所有
        Set<String> keys = jedis.keys("*");
        for (String key : keys){
            System.out.println(key);
        }
        //3关闭连接
        jedis.close();
    }
}

4.2 Spring Data Redis(常用)

在SpringBoot项目中,可以使用SpringDataRedis来简化Redis操作

1、导入坐标 

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

 

 第一步:配置类application.yml

spring:
  application:
    name:java_redis
  #redis相关配置
  redis:
    host:localhost
    port:6379
    #passwoerd:
    database:0 #操作的是0号数据库
    jedis:
      #Redis连接池配置
      pool:
        max-active: 8 #最大连接数
        max-wait: 1ms #连接池最大阻塞等待时间
        max-idle: 4 #连接池中的最大空闲连接
        min-idle: 0 # 连接池中的最小空闲连接

 

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

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

相关文章

C++类的理解与类型名,类的成员,两种定义方式,类的访问限定符,成员访问,作用域与实例化对象

面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题 C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间的交互完成 面向…

ETCD(三)操作指令

1. put put #将给定的key写入到存储 --ignore-lease[false] #使用当前租约更新key --ignore-value[false] #使用当前值更新key --lease"0" # 要附加到key的租约ID&#xff08;十六进制&#xff09; --prev-kv[false] # 返回修改前的上一个键值对2. get get #获取给…

无线洗地机哪款性价比高?高性价比的洗地机分享

虽说现在市面上清洁工具很多&#xff0c;但是要说清洁效果最好的&#xff0c;肯定非洗地机莫属。它集合了吸&#xff0c;洗&#xff0c;拖三大功能&#xff0c;干湿垃圾一次清理&#xff0c;还能根据地面的脏污程度进行清洁&#xff0c;达到极致的清洁效果&#xff0c;省时省力…

4月21日第壹简报,星期五,农历三月初二

4月21日第壹简报&#xff0c;星期五&#xff0c;农历三月初二坚持阅读&#xff0c;静待花开1. 推特拒向大模型免费开放数据&#xff01;马斯克威胁起诉微软&#xff1b;Reddit宣布不再向大模型免费开放数据&#xff0c;要求科技巨头付费使用API接口。2. 浙江&#xff1a;鼓励杭…

【JUC】Java并发机制的底层实现原理

【JUC】Java并发机制的底层实现原理 参考资料&#xff1a; CPU 缓存一致性 《Java并发编程的艺术》 【JUC并发编程】CAS到底加不加锁&#xff1f; 如何写出让 CPU 跑得更快的代码&#xff1f; 彻底理解Java并发编程之Synchronized关键字实现原理剖析 【JUC并发编程】Synchroni…

线程安全版本的单例设计模式 与 生产者消费者模型简介

目录 单例设计模式 单例设计模式——饿汉式 单例设计模式——懒汉式 单例设计模式——懒汉式&#xff08;优化步骤&#xff09; 生产者消费者模型 介绍 优点 补充&#xff1a;关于阻塞队列 单例设计模式 单例设计模式能够保证某个类的实例在程序运行过程中始终都只会存…

代码随想录Day57

1143.最长公共子序列 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的相对顺序的情况下删除某些字…

Cesium 实战-最新版(1.104.0)通过异步方式初始化地球,加载影像以及高程图层

Cesium 实战-最新版&#xff08;1.104.0&#xff09;通过异步方式初始化地球&#xff0c;加载影像以及高程图层 遇到问题初始化底图初始化高程&#xff08;监听载入完成事件&#xff0c;开启关闭高程&#xff09;初始化 3dtile Cesium 最新版&#xff08;1.104.0&#xff09;变…

2021地理设计组二等奖:基于地理大数据的南昌中心城区空间功能感知与分区

一、设计背景及意义 随着经济快速发展&#xff0c;城市功能类型也越来越多&#xff0c;在空间上逐渐聚集和演化&#xff0c;形成了居住区&#xff0c;商业区等城市功能区&#xff0c;而这些功能区没有明显边界&#xff0c;确定困难&#xff0c;如使用传统人力调查方法费时费力…

PHP快速入门16-用curl发起POST和GET的请求

文章目录 前言curl介绍发送GET请求发送POST请求其他选项 总结 前言 本文已收录于PHP全栈系列专栏&#xff1a;PHP快速入门与实战 在Web开发中&#xff0c;经常需要与其他服务器进行数据交互。而现在&#xff0c;绝大多数的接口都是基于HTTP协议的&#xff0c;因此我们需要学会…

Spring MVC的功能

1. 连接功能 1.1几种注解 RequestMapping最常用的注解之一&#xff0c;作用是用来路由注册&#xff08;注册接口的路由映射&#xff09;&#xff0c;即可修饰类也能修饰方法&#xff0c;默认情况下的RequestMapping即可接收Get请求也可以接收Post请求。也可以通过设置method来…

数据通信基础 - 数字传输系统(T1、E1)

文章目录 1 概述2 载波标准&#xff08;E1、T1&#xff09;2.1 T12.2 E1 3 扩展3.1 网工软考真题 1 概述 2 载波标准&#xff08;E1、T1&#xff09; 名称速率 Mbps信道个数每个语音信道的数据速率使用国家T11.5442456Kb/s美国、日本E12.0483264Kb/s欧洲、中国 2.1 T1 语音信…

5g网络变压器的特点与优势分析

5g网络变压器的特点与优势分析 5G网络变压器相比于2.5G和3G网络变压器&#xff0c;具有以下的特点和优势&#xff1a; 更高的频率&#xff1a;5G网络变压器可以支持更高的频率&#xff0c;从而实现更高的数据传输速率和更低的延迟。 更小的尺寸&#xff1a;5G网络变压器采用了…

为什么越来越多的网站选择海外主机?探究原因!

主机已成为网站托管的常用方式&#xff0c;但近年来越来越多的网站选择海外主机。这是为什么呢?在本文中&#xff0c;我们将探究海外主机的优点&#xff0c;并解释为什么越来越多的网站选择它们。 一、海外主机的优点 1、成本更低 海外主机的成本比独立主机低&#xff0c;因为…

文件系统和日志分析

文件系统 文件是存储在硬盘上的&#xff0c;硬盘的最小存储单位叫做"扇区”(sector)每个扇区存储512字节。一般连续八个扇区组成一个"块"(block)&#xff0c;一个块是4K大小&#xff0c;是文件存取的最小单位。操作系统读取硬盘的时候&#xff0c;是一次性连续…

哪个牌子手持洗拖一机好?热门洗地机盘点

在家居清洁中&#xff0c;越来越多的家庭选择了通过智能清洁家电来完成地面的清洁工作&#xff0c;其中洗地机时最受大家青睐的清洁工具&#xff0c;它不仅可以提高我们的清洁效率&#xff0c;还可以减轻清洁时的劳动强度。不过&#xff0c;不同品牌之间的产品的差距也是大有不…

MobPush Android SDK 集成指南

开发工具&#xff1a;Android Studio 集成方式&#xff1a;Gradle在线集成 安卓版本支持&#xff1a;minSdkVersion 19 集成准备 注册账号 使用PushSDK之前&#xff0c;需要先在MobTech官网注册开发者账号&#xff0c;并获取MobTech提供的AppKey和AppSecret&#xff0c;详情可…

世界大学机械工程TOP10,国内大学哪家强?

就在前不久世界大学的排名已经发布&#xff0c;机械工程学科是工科类学科当中代表学科之一&#xff0c;相信很多小伙伴是非常想要了解的。那么&#xff0c;我给大家介绍一下2023年QS世界大学&#xff08;机械工程&#xff09;学科排名。 本次排名比较分析了包括世界93个地区的…

智能洗地机哪个牌子更好用?好用不贵的洗地机推荐

近年来&#xff0c;智能家居产品越来越多&#xff0c;从一开始的扫地机器人到吸尘器再到后来的蒸汽拖把再到现在的洗地机&#xff0c;这些智能化清洁工具&#xff0c;不仅为我们节省了清洁的时间还拥有很好的清洁效果。其中洗地机是近年来最受大家青睐的清洁工具&#xff0c;那…

【Vulnhub】之symfonos1

一、 部署方法 在官网上下载靶机ova环境&#xff1a;https://download.vulnhub.com/symfonos/symfonos1.7z使用VMware搭建靶机环境攻击机使用VMware上搭建的kali靶机和攻击机之间使用NAT模式&#xff0c;保证靶机和攻击机放置于同一网段中。 二、 靶机下载安装 靶机下载与安…