您的位置:首页 > 大数据

大数据正式京淘5

2018-01-16 19:08 197 查看

大数据正式京淘5

NGINX的conf的配置文件的正则表达式

格式

server {
listen  端口;
server_name  域名;

location 正则表达式 {
#返回
}
}


规则

= 精确匹配

~ 区分大小写匹配

~* 不区分大小写匹配

!~和!~*分别为区分大小写不匹配及不区分大小写不匹配

^ 以什么开头的匹配

$ 以什么结尾的匹配

\转义字符。可以转. * ?等

* 代表任意字符


负载均衡

weight:权重,正相关

down:宕机,永不访问

当服务器宕机不可恢复时,配置一个down,减少资源消耗

例子

upstream jt_tomcats {
server 192.168.163.10:8080 weight=3;
server 192.168.163.10:8090 weight=1;
server 192.168.163.10:8100 down;
}


session黏着--只访问你有信息的那一台

问题

session在各个服务器的信息不是共享的

session1【info】

session2【】

session3【】

。。。

图解



解决

ip_hash:

根据ip和端口【192.168.43.121:80】获取字符串的hash值【防止负数:hash值&Integer.MAX_VALUE】

hash值得整数%(服务器的个数)

配置文件

upstream jt_tomcats {
ip_hash;
server 192.168.163.10:8080 weight=3;
server 192.168.163.10:8090 weight=1;
server 192.168.163.10:8100 down;
}


url_hash黏着【依赖第三方插件】

访问服务器的url地址做hash取余运算

功能<====>服务器

SpringSession+Redis

原理



商品信息添加

注意

基本信息作为一个部分

图片作为一个部分

商品描述作为一个部分

商品信息修改

数据回显

js获取一部分

数据库真实获取一部分

数据修改

级联更细

商品删除

记得级联删除

后台系统的高并发

技术

Tomcat集群【每个200/s】

NGINX【20台100w/s】

图解



瓶颈

数据库--查询(最突出)

解决办法

Redis

分布式【数据划分】

nosql【not only sequesce query language】【支持结构化;支持非结构】

可以持久化

注意

持久化+内存=====启动恢复机制

分布式存储海量数据,放到内存,做缓存数据库

京淘的Redis

设计

数据库缓存

减少resultSet的封装

持久层缓存

减少对象的封装

service缓存

减少调用层次

controller缓存

减少调用

设计目标

减少数据库的访问次数

减少网络的传输

减少封装的层次

缓存

缓存架构

ehcache(并发量差)

memorycatch(Redis前的霸主100w/s)

Redis:持久化可以在宕机恢复后,迅速解决数据丢失

雪崩【缓存击穿】:海量用户请求涌入,一旦缓存失效,数据库的压力骤增,数据库宕机

解决雪崩:缓存永不宕机,启动集群,永远只让集群中的一部分在运行,其他的待命

云主机搭建Redis

步骤

Redis存储方式

key-value

key-{key-value}

key-list

Redis基础命令

操作字符串

keys 正则

get key名

set key名 key值

select 整数值(取值范围:默认0-15;作用选择那个分库)

数据分库0-15个库

默认为0库

因为代码控制不了选择那个库


exits key名(判断当前的key是否存在)

与get的区别

1. exits逻辑判断返回是与否
2. get浪费资源,还得返回数据


del key名

type key名(得到的是value的类型)

help 命令名(查看命令使用方式)

flushall 将所有的数据持久化到文件(dump.rdb)

flushdb 库号(当前库的持久化)

Redis基本命令未完待续。。。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: