缓存服务器

reids的哨兵和集群

萝らか妹 提交于 2019-12-15 05:08:26
一.哨兵机制 任务:   有了主从复制的实现以后,如果想对主服务器进行监控,那么在redis2.6以后提供了一个"哨兵"的机制。顾名思义, 哨兵的含义就是监控redis系统的运行状态 。可以启动多个哨兵,去监控redis数据库的运行状态。其主要功能有两点:   a、监控所有节点数据库是否在正常运行。   b、master数据库出现故障时,可以自动通过投票机制,从slave节点中选举新的master,实现将从数据库转换为主数据库的自动切换。   一个一主多从的Redis系统中,可以使用多个哨兵进行监控任务以保证系统足够稳健。此时,不仅哨兵会同时监控主数据库和从数据库,哨兵之间也会相互监控。在这里,建议大家哨兵至少部署3个,并且使用奇数个哨兵。   Redis的哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务: a、 监控 (Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。 b、 提醒 (Notification):当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。 c、 自动故障迁移 (Automatic failover):当一个Master不能正常工作时,哨兵(sentinel) 会开始一次自动故障迁移操作

浏览器缓存控制三种方式(Expires、Last-Modified、Etag)

我只是一个虾纸丫 提交于 2019-12-15 02:27:12
当请求一个页面时,如果浏览器使用本地缓存,因此我们经常会看到一个HTTP请求为304状态。或者显示200状态,在chrome下标注是from cache,在火狐下会标注BFCache; 我们希望在服务器端更新了静态文件(如css、js、图片),能够在客户端得到及时的更新,但又不想让浏览器每次请求都从服务器端获取静态资源。那么就需要了解一些下面的知识: Last-Modified / If-Modified-Since 当浏览器第一次请求一个url时,服务器端的返回状态码为200,同时HTTP响应头会有一个Last-Modified标记着文件在服务器端最后被修改的时间。 浏览器第二次请求上次请求过的url时,浏览器会在HTTP请求头添加一个If-Modified-Since的标记,用来询问服务器该时间之后文件是否被修改过。 如果服务器端的资源没有变化,则自动返回304状态,使用浏览器缓存,从而保证了浏览器不会重复从服务器端获取资源,也保证了服务器有变化是,客户端能够及时得到最新的资源。 Etag / If-None-Match 当浏览器第一次请求一个url时,服务器端的返回状态码为200,同时HTTP响应头会有一个Etag,存放着服务器端生成的一个序列值。 浏览器第二次请求上次请求过的url时,浏览器会在HTTP请求头添加一个If-None-Match的标记

Nginx配置文件详解

独自空忆成欢 提交于 2019-12-15 01:56:14
Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。 ######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数。 worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log /usr/local/nginx/logs/error.log info; #进程pid文件 pid /usr/local/nginx/logs/nginx.pid; #指定进程可以打开的最大描述符:数目 #工作模式与连接数上限 #这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。 #现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。 #这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了

varnish实现缓存加速

风格不统一 提交于 2019-12-15 00:17:45
varnish实现缓存加速 一、采用varnish为nginx实现缓存加速 1、实验环境: (1)一台varnish缓存服务器,一台nginx服务器 (2)关闭防火墙和selinux 2.配置varnish (1)修改varnish配置文件: 创建目录:mkdir -pv /data/varnish/cache 修改属主:chown varnish.varnish /data/varnish/cache (2)测试: 二、varnish实现动静分离 (1)varnish配置: (2)测试: (3)附件内容设置多个组,并做负载: 示例: import directors backend imgsrv1 { .host = "192.168.10.11"; .port = "80"; } backend imgsrv2 { .host = "192.168.10.12"; .port = "80"; } backend appsrv1 { .host = "192.168.10.21"; .port = "80"; } backend appsrv2 { .host = "192.168.10.22"; .port = "80"; } sub vcl_init { new imgsrvs = directors.random(); imgsrvs.add_backend(imgsrv1

搭建Memcache服务详解

不羁的心 提交于 2019-12-15 00:09:59
博文大纲: 一、Memcache简介 二、Memcache工作流程 三、Memcache调度算法 四、Memcache实现原理 五、安装Memcache (1)安装nginx服务器 (2)安装PHP服务器 (3)安装MySQL数据库 (4)测试PHP与Nginx、MySQL的连通性 (5)安装Memcache服务器 (6)PHP服务器安装Memcache客户端 (7)使用 memcache 实现 session 共享 (8)测试Memcache缓存数据库 一、Memcache简介 Memcache是一套自由、开源、高性能、分布式的高速缓存系统。由于Memcache通过在内存中缓存数据和对象来减少读取数据库的次数。目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。 Memcache是一个存储键值对的HashMap,在内存中对任意的数据都可以使用key-value的方式存储,数据库可以来自数据库调用或API调用。Memcache设计理念就是小而强大,她简单的设计促进了快速部署、易于开发并解决大规模的数据缓存的许多难题,而其所开放的API使得Memcache能用于Java、C/C++/C#、Perl、Python等大部分流行的程序语言。 二、Memcache工作流程 注意Memcache虽然被称为“分布式缓存”

在CentOS7上部署squid缓存服务器及代理功能

China☆狼群 提交于 2019-12-14 21:16:41
缓存代理概述: 作为应用层的代理服务软件,squid主要提供缓存加速和应用层过滤控制的功能。 代理的基本类型: 传统代理:也就是普通的代理服务,首先必须在客户机的浏览器、聊天工具、下载软件等程序中手动设置代理服务器的地址和端口,然后才能使用代理服务来访问网络。对于网页浏览器,访问网站时的域名解析请求也会发送给指定的代理服务器。 透明代理:提供与传统代理相同的功能和服务,其区别在于客户端不需要指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向,实际上仍然交给代理服务器来处理。重定向的过程对客户机来说是“透明”的,用户甚至不知道自己在使用代理服务,所以称为“透明代理”。 实验环境表: 安装及运行控制 1.编译安装Squid 配置Squid的编译选项时,将安装目录设置为/usr/local/squid,其他具体选项根据实际需要来确定,配置前可参考./configure --help给出的说明。 tar zxvf squid-3.4.6.tar.gz -C /opt/ cd /opt/squid-3.4.6 ./configure --prefix=/usr/local/squid \ #安装目录 --sysconfdir=/etc \ #单独将配置文件修改到其他目录 --enable-arp-acl \ #直接通过客户端MAC进行管理,防止客户端使用IP欺骗 -

OkHttp官方教程解析-彻底入门OkHttp使用

元气小坏坏 提交于 2019-12-14 13:00:15
最近半年来身边开发的朋友越来越多的提到OkHttp,上谷歌百度一下,确实OkHttp成了时下最火的HTTP框架,于是我也开始放下Volley,转而关注OkHttp,五一期间仔细看了官方WiKi介绍(我喜欢学习官方的文档),现在把自己整理的官方教程分享给大家,希望给初学者带来帮助。 OkHttp官网地址: http://square.github.io/okhttp/ OkHttp GitHub地址: https://github.com/square/okhttp 官网的自我介绍: HTTP is the way modern applications network. It’s how we exchange data & media. Doing HTTP efficiently makes your stuff load faster and saves bandwidth. OkHttp is an HTTP client that’s efficient by default: • HTTP/ 2 support allows all requests to the same host to share a socket . • Connection pooling reduces request latency ( if HTTP/ 2 isn’t available)

PHP学习资源整理

戏子无情 提交于 2019-12-14 12:05:40
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 学习资源 PHP相关的有参考价值的社区,博客,网站,文章,书籍,视频等资源 PHP网站(PHP Websites) PHP The Right Way 一个PHP实践的快速参考指导 PHP书籍(PHP Books) Modern PHP – 作者是 PHP 之道 的发起人和 Slim框架 的作者 Modern PHP(中文版) 依赖管理( Dependency Management ) 用于依赖管理的包和框架 Composer / Packagist – 一个包和依赖管理器. Composer Installers – 一个多框架Composer库安装器 pickle – PHP扩展安装器 Melody – A tool to build one file Composer scripts. 框架( Frameworks ) Web开发框架 Symfony2 – 由独立组件构成的框架(SP2) Zend Framework 2 – 同样是由独立组件构成的框架(ZF2) Laravel 5 – 简洁优雅的PHP Web开发框架(L5) Aura PHP – 独立组件的框架 Yii2 – 用于开发大型Web应用的高性能PHP框架 Nette – 同样是由独立组件构成的框架 PPI Framework 2 –

观极客时间之高并发系统设计40问 后感

与世无争的帅哥 提交于 2019-12-14 07:25:58
文章目录 个人感受 个人解毒(du) 基础篇 (6讲) 01高并发系统:它的通用设计方法是什么? 02 | 架构分层:我们为什么一定要这么做? 03 | 系统设计目标(一):如何提升系统性能? 04 | 系统设计目标(二):系统怎样做到高可用? 05 | 系统设计目标(三):如何让系统易于扩展? 07 | 池化技术:如何减少频繁创建数据库连接的性能损耗? 08 | 数据库优化方案(一):查询请求增加时,如何做主从分离? 09 | 数据库优化方案(二):写入数据量增加时,如何实现分库分表? 10 | 发号器:如何保证分库分表后ID的全局唯一性? 11 | NoSQL:在高并发场景下,数据库和NoSQL如何做到互补? 演进篇 · 缓存篇 (6讲) 12 | 缓存:数据库成为瓶颈后,动态数据的查询要如何加速? 13 | 缓存的使用姿势(一):如何选择缓存的读写策略? 14 | 缓存的使用姿势(二):缓存如何做到高可用? 15 | 缓存的使用姿势(三):缓存穿透了怎么办? 16 | CDN:静态资源如何加速? 加餐 | 数据的迁移应该如何做? 演进篇 · 消息队列篇 (6讲) 17 | 消息队列:秒杀时如何处理每秒上万次的下单请求? 18 | 消息投递:如何保证消息仅仅被消费一次? 19 | 消息队列:如何降低消息队列系统中消息的延迟? 演进篇 · 分布式服务篇 (9讲) 21 |

MySQL 配置优化

廉价感情. 提交于 2019-12-14 06:15:34
安装MySQL后,配置文件my.cnf在 /MySQL安装目录/share/mysql目录中,该目录中还包含多个配置文件可供参考,有my-large.cnf ,my-huge.cnf, my-medium.cnf,my-small.cnf,分别对应大中小型数据库应用的配置。win环境下即存在于MySQL安装目录中的.ini文件。 下面列出了对性能优化影响较大的主要变量,主要分为连接请求的变量和缓冲区变量。 1. 连接请求的变量: 1) max_connections MySQL的最大连接数,增加该值增加mysqld 要求的文件描述符的数量。如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。 数值过小会经常出现ERROR 1040: Too many connections错误,可以过’conn%’通配符查看当前状态的连接数量,以定夺该值的大小。 show variables like ‘max_connections’ 最大连接数 show status like ‘max_used_connections’响应的连接数 如下: mysql> show variables like ‘max_connections