(一些)杂谈

1、何时使用redis

redis是使用广泛的高性能Key-Value存储,能够存储五种数据类型,包括:list、set、string、hash、zset。那何时应该使用redis来做缓存提高系统的吞吐量呢?

1.1 秒杀业务

提到redis作为缓存,一个典型场景就是——秒杀业务。在几秒的时间内,瞬时流量能达到平常一天的流量;如果单纯使用数据库来接受处理请求,就会产生严重的锁冲突。这时候使用redis缓存来助力秒杀就很合适。一般可将秒杀业务分为以下三个步骤:
1、准备阶段 提前载入一些必需数据到缓存中,预热业务;
2、秒杀阶段产生瞬时高流量,对资源进行集中处理。缓存下最重要的数据,诸如:库存、抢购数量等;
3、结束清算完成数据一致性处理等。

1.2 其他场景

秒杀业务对于大多数人来说,还是太少接触了。还有其他场景:“不需要实时更新但是又极其消耗数据库的数据”“需要实时更新,但是更新频率不高的数据”。选两个项目中用到的来具体看看。

1.2.1 TOTAL_MEM

看名称就知道是主机所剩内存值,由某个命令触发,在统计系统信息时展示。如果使用数据库来存储,感觉杀鸡焉用牛刀,用redis来做永久存储就很好了。

1.2.2 MEM_STAT

内存状态,有一张单独的表从各个需要的维度记录当前内存状态,界面展示时只需要部分字段。筛选出需要的字段数据,以list存入redis,并设置过期时间。

2、WSGI

2.1 背景知识

Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。用python的Django框架开发的是web应用程序,还需要Web服务器将请求转发到web应用程序。WSGI就是做这个工作的。详细可以参考这两个链接传送门1传送门2

2.2 实现

使用Django开发服务器的过程中,常用runserver命令来开启服务器,生产环境就需要代码部署到Web服务器上了。项目采用Apache2来作为Web服务器,Apache2常用mod_wsgi来支持WSGI。Django的官网已经提供了指导说明如何部署Django官方说明

3、Tomcat

3.1 Tomcat目录结构

在Tomcat目录结构中,可以设置3组目录(/common/、/server/、/shared/*,但默认不一定开放,可能只有、/lib/目录存在)用于存放Java类库,另外还应该加上Web应用程序自身的“/WEB-INF/”目录,一共四组。每组的含义:

  • /common。类库可被Tomcat和所有的Web应用程序共同使用。
  • /server。类库可被Tomcat使用,对所有的Web应用程序都不可见。
  • /shared。类库可被所有的Web应用程序共同使用,但对Tomcat自己不可见。
  • /WebApp/WEB-INF。类库仅可以被该Web应用程序使用,对Tomcat和其他Web应用程序都不可见。
  • tomcat类层次结构
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值