redis
非关系型数据库,一般在linux上使用。(和mysql一样)
特点:
1.作为非关系数据库,没有表
2.键值对的结构存在 key-value
3.redis中数据是存储在内存中的,通过命令设置密码,重启redis密码会消失。因为redis关闭时,内存会释放。为了避免数据释放,redis把数据保存在文件中,在启动时,打开文件进行加载,正常数据不会出问题,密码不在文件中保存,密码会消失,数据没问题。
4. 因为数据在内存中,所以redis读取数据速度是mysql的上万倍
5. redis一般用于关系型数据库的辅助工作,可以把经常查询的数据从mysql中查询出来,放到redis中,用户查询直接去redis中查,软件查询速度加快。
6. redis一般都作为一个临时的中转站来用
redis的数据类型
储存的数据格式的类型
1.字符串/string
2.哈希/hash
3.列表/list
4.集合/set
5.有序集合/zset
redis的操作
-
安装:yum install redis
-
卸载:yum remove redis
-
管理:
systemctl start redis 启动
systemctl stop redis 停止
systemctl status redis 查看状态
systemctl restart redis 重新开始 -
连接:没有密码,是在连接成功后输入
redis-cli
–raw 解决乱码
-h ip默认:127.0.0.1
-p 端口默认:6379
exit 断开连接 -
设置密码:config set requirepass 密码
填写密码: auth 密码 -
数据的操作:
- 字符串
- 增 :set key value (set 张三 年龄23)
- 删:del key(del 张三)
- 改:set key value (改和增命令一样,有就改,无就增)
- 查:get key (get 张三)
keys * :列出所有的key
- 哈希
- 增 :hset key field value (set zhangsan age 23)
- 删: hdel key field(hdel zahngsan name )
del key (del zhangsan)(通用) - 改:hset key field value (改和增命令一样,有就改,无就增)
- 查:hget key field (hget zhangsan name)
hgetall key (hget zhangsan)
keys * :列出所有的key
- 字符串
redis的设置
vi /etc/redis.conf 编辑配置文件
bind:限制redis只能在哪里连接,作用和mysql的帐号主机作用一样
requirepass:redis的密码,重启不会消失
port:端口号
dbfilename:redis中的数据保存的文件名字
dir:dbfilename所在的文件夹
redis如何进行远程连接
1.需要知道对方redis端口号和密码
2.进入redis,端口号+密码
nginx
nginx 服务器软件
特点:
1.nginx只能运行前端的代码
2.默认使用的端口号80
3.除了普通的动态网站,还可以作为代理服务器
作用:
1.静态HTTP服务器:Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。如下: 添加一个项目到nginx
2.反向代理服务器:客户端本来可以直接通过HTTP协议访问某网站应用服务器,网站管理员可以在中间加上一个Nginx,客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器。proxy_pass
安装:yum install nginx
卸载:yum remove nginx
启动管理:
systemctl start nginx 启动
systemctl stop nginx 停止
systemctl status nginx查看状态
systemctl restart nginx 重新启动
配置文件:路径:/etc/nginx/nginx.conf 一个server就是一个项目
server:
listen:监听的端口号,我们项目的端口(不也能重复了)
server_name :项目访问的名字,可以使用域名,也可以直接用ip,或者_
root:项目所在的路径
index:默认访问项目的路径里面的哪个文件;如果不写,默认index.html
location:代理 转发规则 proxy_pass
添加一个项目到nginx
1.启动nginx:systemctl start nginx
2.进入配置文件vi /etc/nginx/nginx.conf(按键盘insert按钮进行编辑,esc退出编辑,:wq保存并推出,:q!不保存退出。)
3.加入一个server(复制代码),修改listen、root(新建文件),保存并推出:wq,重新启动nginx(systemctl restart nginx)
4.将项目移动到root中,在云服务器中添加端口号listen
5.浏览器进行访问
jdk串知识
前后端分离项目搭建
- nginx:前端服务器软件,用来验证前端登录传的token是否正确,每次登陆都会生成新的token。
- token:中文叫令牌,是后端生成的,用来检查用户是否登陆的一个凭证,登陆成功才能生成token。用户有没有登陆,就看用户有没有正确的token。每次登陆都会生成新的token,会过期。token就是一串随机的字符串。比如:jfih5efiKe2Hv4xzlv5Ev1nx9knNn
- 理解:账号密码相当于进演唱会的时候要出示的购票二维码 token相当于进场时工作人员给你胳膊上盖的章 一天之内进出演唱会出示盖章就行了
- token保存到了哪里?
保存到前端,浏览器或者app都是保存到了cookies的地方,后端保存在了redis或者session里面。
- cookies:是手机和浏览器自带的一个储存的功能。一般我们的token就是存放到这里面的。
- session:是服务器自带的一个功能,它的作用和redis一样,也是用来存储数据的,不过session没有redis好用,
项目结构
mvc
mvc结构,简单理解,就是前端和后端代码在一个软件包里头。但是随着互联网发展,现在软件越来越复杂,为了更加方便项目的开发,所以前端和后端的代码是不建议写到一个代码包里头,前后端分离慢慢被淘汰了。
猫宁商城,前后端是在一起的
前后端分离的项目
前端代码是一个软件包,后端代码是一个软件包,前端的开发工作和后端的开发工作是互相独立的,互不影响的,前端写错不会影响后端,后端写错不会影响前端。
跨域:前端和后端网址不一样会导致跨域问题。协议、IP、端口、路径只要有一个不一样,就会导致跨域的问题。浏览器十进制跨域访问的!不能只用tomcat,所以要用nginx,nginx作为一个代理。
人才信息是前后端分离,直接用浏览器访问ip,不能成功,设置代理
搭建前后端分离项目
1…war放到tomcat的webapps
2.navicat上传数据库
3.检查数据库密码mysql -u root -p Enter password: 和redis密码redis-cli
4.改nginx配置文件vi /etc/nginx/nginx.conf,添加项目,设置location代理
端口号1234,代理密码rencai
5.修改前端rencai的代码,把代理中的地址 ctrl+f搜索,ctrl+h替换
6.云服务器防火墙添加端口号1234
7.浏览器访问http://121.4.32.20:1234/login
8.hgetall +一连串大写字母 ->生成token
- 前后端分离项目实现原理