一、thinkphp5和6有什么区别
版本不同,thinkphp5和6有什么区别是版本不同,
两者的主要区别就是点间距和像素密度的区别、P5的像素点间距是5mm,每平方米有40000个像素,P6的像素点间距是6mm,每平方米有27777个像素,从显示效果上来说P5更高,单位价格也更贵。但工程应用中不能说P5一定比P6好,P5~P6决定使用哪个型号要从屏体大小、观看距离、工程预算和用途等方面综合考虑。
二、请求30次redis和请求30次数据库哪个更快
纯内存数据库,如果只是简单的key-value,内存不是瓶颈。一般情况下,hash查找可以达到每秒数百万次的数量级。瓶颈在于网络IO上。
根据你测的的10000/s来看,客户端和redis应该是部署在两台不同的机器,并且是使用同步的方式请求redis.每次请求需要通过网络把请求发送到redis所在的机器,然后等待redis返回数据。
时间大部分消耗在网络传输中。
如果把redis和客户端放在同一台机器,网络延迟会更小,一般情况下可以打到60000次每秒甚至更高,取决于机器性能。
锁不是影响性能的主要因素。
线程锁(mutex_lock)只有在遇到冲突的情况下性能会下降,而正常情况下,遇到冲突的概率很低。
如果只是简单的加锁、释放锁速度是非常快的,每秒钟上千万次没问题。
memcache内部用到了大量的锁,并没有见到性能降低。
线程也不是影响吞吐量的重要因素。
如第一点来说,一般情况下,程序处理内存数据的速度远高于网卡接收的速度。
使用线程好处是可以同时处理多条连接,在极端情况下,可能会提高响应速度。
使用epoll或libevent等因为异步非阻塞IO编程只能这么做。
与之对应的是同步阻塞IO编程,使用多进程或多线程实现多条连接的处理,比如apache。
一般情况下,异步非阻塞IO模型性能是远高于同步阻塞IO模型的,可以参考nginx与apache性能的对比。
libevent并不比redis自己实现的ae_event慢,代码多是应为ae_event只实现了redis需要的功能,而libevent则具有更多的功能,比如更快的定时器、bufferevent模型,甚至自带了DNS、HTTP协议的处理。
并且libevent更通用,而redis只专注于linux平台。最后回答题主问题,快在哪?
1、纯内存操作2、异步非阻塞IO
关于memcache和redis的区别的内容到此结束,希望对大家有所帮助。