本文于2017年2月中旬完成,发布在个人博客网站上。考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。Google开源Brotli压缩算法Brotli是一种全新的数据格式,可以提供比Zopfli高20-26%的压缩比。在caniuse网站查询当前主流浏览器对brotli算法的支持程度,结果页面BrotliAccept-Encoding/Content-Encoding。很不幸,IE11并不支持该算法,与之相反,Chrome从49开始支持brotli算法。安装下载源码从ngx_brotli下载ngx_brotli的代码。ngx_brotli编译时依赖brotli,但注
缓存更新是redis为了节约内存而设计出来的一个东西,主要是因为内存数据宝贵,当我们向redis插入太多数据,此时就可能会导致缓存中的数据过多,所以redis会对部分数据进行更新,或者把他叫为淘汰更合适。1.缓存更新三种策略:内存淘汰:redis自动进行,当redis内存达到咱们设定的max-memery的时候,会自动触发淘汰机制,淘汰掉一些不重要的数据(可以自己设置策略方式)超时剔除:当我们给redis设置了过期时间ttl之后,redis会将超时的数据进行删除,方便咱们继续使用缓存。主动更新:我们可以手动调用方法把缓存删掉,通常用于解决缓存和数据库不一致问题。2.主动更新策略由于我们的缓存的
Nginx(enginex)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。有着负载均衡、动静分离等强大的功能,而且还有众多三方插件来满足应用要求。这里重点介绍nginx实现IP地址的访问控制策略配置。一、简要说明Nginx配置访问IP可以修改nginx.conf文件,只需要在server中添加allow和deny的IP即可。allow和deny指令在ngx_http_access_module模块中。两个指令分别表示允许或禁止源IP访问,用于对源IP做访问控制。nginx是按照自上而下的顺序进行匹配,匹配到一个就不往下继续了。遇到return指令时
简单安装选择nginx版本:dockersearchnginx使用最新版本dockerpullnginx查看镜像dockerimages运行nginx容器dockerrun--namenginx-withoutOther-p8080:80-dnginx:latest进入容器dockerexec-itdnginx-withoutOther/bin/bash映射配置以及文件储备知识:docker安装nginx的配置信息日志位置:/var/log/nginx/配置文件位置:/etc/nginx/项目位置:/usr/share/nginx/html在宿主机创建需要映射的nginx目录例如/root/d
Redis(RemoteDictionaryServer,远程字典服务器)是一个开源的高性能键值对存储系统,通常被用作数据库、缓存或消息中间件。这是一个基于内存的数据结构存储系统,可以通过持久化机制存储在磁盘上。Redis支持多种数据结构,如字符串(strings)、集合(sets)、有序集合(sortedsets)、哈希表(hashes)、列表(lists)等。 特性性能高:因为数据存储在内存中,所以Redis可以提供极高的读写速度。支持多种数据结构:它不仅仅是一个“key-value”存储系统,Redis还支持更复杂的数据结构。原子操作:Redi
文章目录01.server_name指令1.精确匹配2.通配符匹配3.正则表达式匹配4.default_server属性5.匹配顺序案例02.listen指令03.location指令1.精确匹配(=)2.前缀匹配(^~)3.正则表达式匹配(~或~*)4.普通字符串匹配5.匹配顺序案例04.root指令05.alias指令06.index指令07.error_page指令通过浏览器发送一个HTTP请求实现从客户端发送请求到服务器端获取所需要内容后并把内容回显展示在页面。这个时候,我们所请求的内容就分为两种类型,一类是静态资源、一类是动态资源。静态资源即指在服务器端真实存在并且能直接拿来展示的一
安装acme.sh安装acme.sh并设置邮箱用来接受重要通知,如证书快过期未更新通知curlhttps://get.acme.sh|sh-semail=my@example.com执行命令后几秒就安装好了,如果半天没有反应请Ctrl+C后重新执行命令。acme.sh安装在~/.acme.sh目录下,并自动创建了一个cronjob,每天0:00点自动检测所有的证书,如果快过期了,则会自动更新。安装后,理论上会自动添加一个acme.sh全局应用别名,但有时候会commandnotfound,需要手动执行以下命令:source~/.bashrc或source~/.bash_profile,或关掉终
Redis-Day3实战篇-商户查询缓存什么是缓存添加Redis缓存业务流程项目实现练习-给店铺类型查询业务添加缓存缓存更新策略最佳实践方案案例-给查询商铺的缓存添加超时剔除和主动更新缓存穿透/雪崩/击穿缓存穿透概述项目实现-商铺查询缓存缓存雪崩缓存击穿概述互斥锁逻辑过期练习-缓存工具封装来源Gitee地址什么是缓存缓存(cache):数据交换的缓冲区,贮存数据的临时地方,一般读写性能较高作用:降低后端负载提高读写效率,降低响应时间成本:数据一致性成本代码维护成本运维成本添加Redis缓存业务流程项目实现publicResultqueryShopById(Longid){StringshopK
一、Redis发布订阅1.简介 Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。2.使用订阅的语法格式:subscribe主题名字示例:127.0.0.1:6379>subscribechannel-1Readingmessages...(pressCtrl-Ctoquit)1)"subscribe"2)"channel-1"3)(integer)1发布命令的语法格式:publishchannel-1hello示例:127.0.0.1:6379>publishchannel-1hello(integer)1其中返回值1代
redis的高可用(主从复制、哨兵、群集)主从复制:主从复制是高可用Redis的基础,哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。缺陷:故障恢复无法自动化;写操作无法负载均衡;存储能力受到单机的限制。哨兵:在主从复制的基础上,哨兵实现了自动化的故障恢复。缺陷:写操作无法负载均衡;存储能力受到单机的限制。集群:通过集群,Redis解决了写操作无法负载均衡,以及存储能力受到单机限制的问题,实现了较为完善的高可用方案哨兵和集群有什么区别:哨兵写操作无法均衡,存储能力受限。集群这些问题都已经解决了主从复制是指将一台redis服