Memcache、Codeception、Keepalived+

2020-07-14  本文已影响0人  文知道

一、Memcache

  1. 访问比较频繁的数据,安全性差的数据,丢失无所谓的数据。
  2. 数据更新,比较频繁的数据,比如用户的在线状态。
  3. 数据的单个键值不能太大,不要超过1Mb数据。

Memcache跟Redis区别

  1. 【持久化能力】Redis支持持久化可以存到磁盘,memcache也支持但一般不做持久化(重启丢失数据)

  2. 【数据类型支持】Redis类型较多(5种数据类型,string、list、hash、set、sorted set),memcache只能是字符串

  3. 【线程模型】Redis是单线程+多路IO复用,虽然没有锁冲突,但很难利用多核特性提升整体吞吐量。memecache是多线程+锁的方式,主线程监听,work子线程接收请求,执行读写,有锁冲突。

  4. 【数据库特征】Redis不是所有的数据都存储在内存,在很多方面具备数据库的特征,memcache只是简单的kv缓存;相当于memchache更像是redis在功能上的一个子集。

  5. 【内容大小比较】redis存储的内容比较大(memcache的value存储最大是1M,如果存储value很大,只能选择redis)

  6. 【内存分配】memchache使用预分配内存池的方式管理内存,能够省区内存分配的时间,这个节省的时间在数据量很大的时候还是很可观的。而redis则是临时申请空间,可能导致碎片。Redis和Memcache在写入性能上面差别不大的,读取性能上面尤其是批量读取性能上面Memcache更强的。

  7. 【高可用支持】高可用(redis原生支持高可用功能,可以实现主从复制,哨兵模式,redis集群模式,而memcache要实现高可用,需要进行二次开发,例如客户端的双读双写,或者服务端的集群同步)
    (延伸:虽然数据类型单一,但是memcache的内存管理机制导致无碎片,这让memcache工作更加稳定,而redis本身也考虑到自己功能复杂,会产生碎片,并且容易崩溃)

二、PHP测试框架Codeception

1、验收测试(Acceptance Tests)

优点
  1. 任何网站都能做
  2. 能测试JavaScript和ajax请求
  3. 可以拿给你的客户和经理看
  4. 大部分的支持都是稳定的:源代码或技术改动影响很小
缺点
  1. 非常慢:包括运行浏览器和数据库填充
  2. 检查少了可能会导致不靠谱(false-positive)的结果
  3. 执行不稳定:渲染和JavaScript的问题可能会导致不可预知的结果

2、功能测试(Functional Tests)

优点
  1. 像验收测试,但是更快
  2. 可以提供更详细的报告
  3. 足够稳定:只有大版本修改,或者移动到其它框架才会影响到他们
缺点
  1. JavaScript和Ajax不受影响
  2. 需要一个事先准备的测试环境

3、单元测试(Unit Tests)

优点
  1. 最快
  2. 可覆盖到很少用到的特性
  3. 可以测试出应用程序核心的稳定性
缺点
  1. 没有测试单元之间的连接
  2. 支持不稳定,代码如果修改了,测试用例也要改

三、Keepalived+LVS+MySQL双主复制实现读写负载均衡及高可用

Keepalived(防止单点故障)

LVS(负载均衡)

lvs 与 nginx 对比?
  1. 负载度 lvs 优于 nginx
  2. 稳定度 lvs 优于 nginx
  3. 服务器性能要求 lvs 优于 nginx
  4. 网络层数的效率 lvs 优于 nginx
  5. 功能多少 nginx 优于 lvs

应用场景

四、AWVS

上一篇 下一篇

猜你喜欢

热点阅读