一、短连接开始测试

ab -n 5000 -c 100 -k 127.0.0.1/test_redis_short

#demo1

Concurrency Level:
Time taken for tests: 0.745 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 6708.13 [#/sec] (mean)
Time per request: 14.907 [ms] (mean)
Time per request: 0.149 [ms] (mean, across all concurrent requests)
Transfer rate: 1434.65 [Kbytes/sec] received

#demo2

Concurrency Level:
Time taken for tests: 0.697 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 7177.65 [#/sec] (mean)
Time per request: 13.932 [ms] (mean)
Time per request: 0.139 [ms] (mean, across all concurrent requests)
Transfer rate: 1535.06 [Kbytes/sec] received

ab -n 10000 -c 100 -k 127.0.0.1/test_redis_short

#demo1

Concurrency Level:
Time taken for tests: 1.211 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 8256.17 [#/sec] (mean)
Time per request: 12.112 [ms] (mean)
Time per request: 0.121 [ms] (mean, across all concurrent requests)
Transfer rate: 1765.50 [Kbytes/sec] received

#demo2 比较卡

Concurrency Level:
Time taken for tests: 17.364 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 575.90 [#/sec] (mean)
Time per request: 173.643 [ms] (mean)
Time per request: 1.736 [ms] (mean, across all concurrent requests)
Transfer rate: 123.15 [Kbytes/sec] received

ab -n 20000 -c 100 -k 127.0.0.1/test_redis_short

#demo1

Concurrency Level:
Time taken for tests: 19.374 seconds
Complete requests:
Failed requests:
(Connect: , Receive: , Length: , Exceptions: )
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 1032.32 [#/sec] (mean)
Time per request: 96.869 [ms] (mean)
Time per request: 0.969 [ms] (mean, across all concurrent requests)
Transfer rate: 220.66 [Kbytes/sec] received

Nginx CPU内存情况

ab -n 30000 -c 100 -k 127.0.0.1/test_redis_short

#demo1

Concurrency Level:
Time taken for tests: 50.960 seconds
Complete requests:
Failed requests:
(Connect: , Receive: , Length: , Exceptions: )
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 588.69 [#/sec] (mean)
Time per request: 169.867 [ms] (mean)
Time per request: 1.699 [ms] (mean, across all concurrent requests)
Transfer rate: 123.09 [Kbytes/sec] received

Nginx CPU内存情况

短连接一旦-n 大于 10000 ,nginx 刚开始直接100%,但是redis-server 负载相对较小,以下是 -n = 40000

Requests per second:    1105.62 [#/sec] (mean)

第二次 -n = 40000 测试结果

Requests per second:    933.82 [#/sec] (mean)

总结:

  使用短连接一开始nginx 负载就满载100% ,太可怕了,但是redis-server 负载相对较小,(30000--->100%) 、(20000--->90%)、(10000--->70~90%),测试数据显示,安全最大连接在5000 以内

二、长连接开始测试

ab -n 5000 -c 100 -k 127.0.0.1/test_redis_long

#demo1

Concurrency Level:
Time taken for tests: 0.289 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 17322.98 [#/sec] (mean)
Time per request: 5.773 [ms] (mean)
Time per request: 0.058 [ms] (mean, across all concurrent requests)
Transfer rate: 3501.81 [Kbytes/sec] received

#demo2

Concurrency Level:
Time taken for tests: 0.278 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 17977.46 [#/sec] (mean)
Time per request: 5.563 [ms] (mean)
Time per request: 0.056 [ms] (mean, across all concurrent requests)
Transfer rate: 3634.12 [Kbytes/sec] received

ab -n 10000 -c 100 -k 127.0.0.1/test_redis_long

#demo1

Concurrency Level:
Time taken for tests: 0.670 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 14927.29 [#/sec] (mean)
Time per request: 6.699 [ms] (mean)
Time per request: 0.067 [ms] (mean, across all concurrent requests)
Transfer rate: 3016.84 [Kbytes/sec] received

#demo2

Concurrency Level:
Time taken for tests: 0.812 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 12310.57 [#/sec] (mean)
Time per request: 8.123 [ms] (mean)
Time per request: 0.081 [ms] (mean, across all concurrent requests)
Transfer rate: 2488.05 [Kbytes/sec] received

#demo3

Concurrency Level:
Time taken for tests: 0.662 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 15114.05 [#/sec] (mean)
Time per request: 6.616 [ms] (mean)
Time per request: 0.066 [ms] (mean, across all concurrent requests)
Transfer rate: 3054.85 [Kbytes/sec] received

ab -n 20000 -c 100 -k 127.0.0.1/test_redis_long

#demo1

Concurrency Level:
Time taken for tests: 0.981 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 20390.39 [#/sec] (mean)
Time per request: 4.904 [ms] (mean)
Time per request: 0.049 [ms] (mean, across all concurrent requests)
Transfer rate: 4121.23 [Kbytes/sec] received

ab -n 30000 -c 100 -k 127.0.0.1/test_redis_long

#demo1

Concurrency Level:
Time taken for tests: 1.392 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 21556.79 [#/sec] (mean)
Time per request: 4.639 [ms] (mean)
Time per request: 0.046 [ms] (mean, across all concurrent requests)
Transfer rate: 4356.78 [Kbytes/sec] received

ab -n 40000 -c 100 -k 127.0.0.1/test_redis_long

#demo1

Concurrency Level:
Time taken for tests: 1.711 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 23377.05 [#/sec] (mean)
Time per request: 4.278 [ms] (mean)
Time per request: 0.043 [ms] (mean, across all concurrent requests)
Transfer rate: 4724.64 [Kbytes/sec] received

ab -n 50000 -c 100 -k 127.0.0.1/test_redis_long

#demo1

Concurrency Level:
Time taken for tests: 1.995 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 25059.81 [#/sec] (mean)
Time per request: 3.990 [ms] (mean)
Time per request: 0.040 [ms] (mean, across all concurrent requests)
Transfer rate: 5064.71 [Kbytes/sec] received

ab -n 100000 -c 100 -k 127.0.0.1/test_redis_long

#demo1

Concurrency Level:
Time taken for tests: 3.613 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 27676.11 [#/sec] (mean)
Time per request: 3.613 [ms] (mean)
Time per request: 0.036 [ms] (mean, across all concurrent requests)
Transfer rate: 5593.40 [Kbytes/sec] received

ab -n 200000 -c 100 -k 127.0.0.1/test_redis_long

#demo1

Concurrency Level:
Time taken for tests: 7.562 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 26447.14 [#/sec] (mean)
Time per request: 3.781 [ms] (mean)
Time per request: 0.038 [ms] (mean, across all concurrent requests)
Transfer rate: 5344.99 [Kbytes/sec] received

ab -n 500000 -c 100 -k 127.0.0.1/test_redis_long

#demo1

Concurrency Level:
Time taken for tests: 17.541 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 28505.36 [#/sec] (mean)
Time per request: 3.508 [ms] (mean)
Time per request: 0.035 [ms] (mean, across all concurrent requests)
Transfer rate: 5760.94 [Kbytes/sec] received

ab -n 1000000 -c 100 -k 127.0.0.1/test_redis_long

#demo1

Concurrency Level:
Time taken for tests: 36.749 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 27211.29 [#/sec] (mean)
Time per request: 3.675 [ms] (mean)
Time per request: 0.037 [ms] (mean, across all concurrent requests)
Transfer rate: 5499.40 [Kbytes/sec] received

ab -n 1500000 -c 100 -k 127.0.0.1/test_redis_long

#demo1

Concurrency Level:
Time taken for tests: 57.548 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 26065.16 [#/sec] (mean)
Time per request: 3.837 [ms] (mean)
Time per request: 0.038 [ms] (mean, across all concurrent requests)
Transfer rate: 5267.76 [Kbytes/sec] received

ab -n 2000000 -c 100 -k 127.0.0.1/test_redis_long

#demo1

Concurrency Level:
Time taken for tests: 76.746 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 26060.04 [#/sec] (mean)
Time per request: 3.837 [ms] (mean)
Time per request: 0.038 [ms] (mean, across all concurrent requests)
Transfer rate: 5266.73 [Kbytes/sec] received

Nginx CPU内存情况

ab -n 2500000 -c 100 -k 127.0.0.1/test_redis_long

#demo1

Concurrency Level:
Time taken for tests: 90.761 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 27544.95 [#/sec] (mean)
Time per request: 3.630 [ms] (mean)
Time per request: 0.036 [ms] (mean, across all concurrent requests)
Transfer rate: 5566.83 [Kbytes/sec] received

Nginx CPU内存情况

长连接-n = 2500000 ,nginx 刚开始不会超过50%,但是redis-server 负载相对高点,最高在50%左右,测试结果: 

Concurrency Level:
Time taken for tests: 93.482 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 26743.15 [#/sec] (mean)
Time per request: 3.739 [ms] (mean)
Time per request: 0.037 [ms] (mean, across all concurrent requests)
Transfer rate: 5404.78 [Kbytes/sec] received

ab -n 5000000 -c 100 -k 127.0.0.1/test_redis_long

#demo1

Concurrency Level:
Time taken for tests: 221.492 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 22574.15 [#/sec] (mean)
Time per request: 4.430 [ms] (mean)
Time per request: 0.044 [ms] (mean, across all concurrent requests)
Transfer rate: 4562.23 [Kbytes/sec] received

Nginx CPU内存情况

Completed 2000000 requests  请求截图

Completed 3500000 requests  请求截图 ,这时候的redis-server 负载保持在38%左右

测试到最后AB 压力直接爆掉

(-n---->nginx负载----->redis-server负载---->Requests per second)、

(100000--->37%--->37%---->28303.90) 表示很快完成

(200000--->50%--->56%--->33518.21)

(500000--->67%--->74%--->23959.52) redis-server 不稳定

(1000000--->50%--->50%--->23959.52) 2个都比较稳定,都能够保持在50%以下

总结:

  使用长连接,10W 连接时毫无压力的,示,安全最大连接在20W 以内(测试环境可以100W没问题)

1、短连接Nginx负载太高 10000 链接负载直接飙到90+%

三、测试代码

test_long.lua

--[[-----------------------------------------------------------------------
* | Copyright (C) Shaobo Wan (Tinywan)
* | Github: https://github.com/Tinywan
* | Author: Tinywan
* | Date: 2017/5/8 16:25
* | Mail: Overcome.wan@Gmail.com
* |------------------------------------------------------------------------
* | version: 1.0
* | description: redis 长连接带连接池测试
* |------------------------------------------------------------------------
--]]
local redis = require "resty.redis"
local red = redis:new() local ok, err = red:connect("127.0.0.1", )
if not ok then
ngx.say("failed to connect: ", err)
return
end -- auth
local count
count, err = red:get_reused_times()
if == count then
local res, err = red:auth("tinywan123456")
if not res then
ngx.say("failed to authenticate: ", err)
return
end
elseif err then
ngx.say("failed to get_reused_times: ", err)
end ok, err = red:set("dog_test_long", "an animal 222"..ngx.time())
if not ok then
ngx.say("failed to set dog: ", err)
return
end ngx.say("set result: ", ok) local res, err = red:get("dog_test_long")
if not res then
ngx.say("failed to get dog: ", err)
return
end if res == ngx.null then
ngx.say("dog not found.")
return
end ngx.say("dog_test_long: ", res) local ok, err = red:set_keepalive(, )
if not ok then
ngx.say("failed to set keepalive: ", err)
return
end

test_short.lua

--[[-----------------------------------------------------------------------
* | Copyright (C) Shaobo Wan (Tinywan)
* | Github: https://github.com/Tinywan
* | Author: Tinywan
* | Date: 2017/5/8 16:25
* | Mail: Overcome.wan@Gmail.com
* |------------------------------------------------------------------------
* | version: 1.0
* | description: redis 短连接测试
* |------------------------------------------------------------------------
--]]
local redis = require "resty.redis"
local red = redis:new() --red:set_timeout(1000) -- 1 sec -- or connect to a unix domain socket file listened
-- by a redis server:
-- local ok, err = red:connect("unix:/path/to/redis.sock") local ok, err = red:connect("127.0.0.1", )
if not ok then
ngx.say("failed to connect: ", err)
return
end local res, err = red:auth("tinywan123456")
if not res then
ngx.say("failed to authenticate: ", err)
return
end ok, err = red:set("dog_test_short", "an animal dog_test_short"..ngx.time())
if not ok then
ngx.say("failed to set dog: ", err)
return
end ngx.say("set result: ", ok) local res, err = red:get("dog_test_short")
if not res then
ngx.say("failed to get dog: ", err)
return
end if res == ngx.null then
ngx.say("dog not found.")
return
end ngx.say("dog_test_short: ", res)

 redis_iresty_short.lua

--[[-----------------------------------------------------------------------
* | Copyright (C) Shaobo Wan (Tinywan)
* | Github: https://github.com/Tinywan
* | Author: Tinywan
* | Date: 2017/5/8 16:25
* | Mail: Overcome.wan@Gmail.com
* |------------------------------------------------------------------------
* | version: 1.0
* | description: redis_iresty 短连接测试
* |------------------------------------------------------------------------
--]]
local redis = require "resty.redis_iresty"
local red = redis:new() local res, err = red:auth("tinywan123456")
if not res then
ngx.say("failed to authenticate: ", err)
return
end local ok, err = red:set("OPenresty_short", "NGINX-based OPenresty_short")
if not ok then
ngx.say("failed to set: ", err)
return
end ngx.say("set result: ", ok)

ab -n 5000 -c 100 -k 127.0.0.1/redis_iresty_short

Concurrency Level:
Time taken for tests: 0.682 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 7332.55 [#/sec] (mean)
Time per request: 13.638 [ms] (mean)
Time per request: 0.136 [ms] (mean, across all concurrent requests)
Transfer rate: 1203.00 [Kbytes/sec] received

ab -n 10000 -c 100 -k 127.0.0.1/redis_iresty_short

Concurrency Level:
Time taken for tests: 1.120 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 8925.68 [#/sec] (mean)
Time per request: 11.204 [ms] (mean)
Time per request: 0.112 [ms] (mean, across all concurrent requests)
Transfer rate: 1463.93 [Kbytes/sec] received

ab -n 100000 -c 100 -k 127.0.0.1/redis_iresty_short

Concurrency Level:
Time taken for tests: 10.308 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 9701.45 [#/sec] (mean)
Time per request: 10.308 [ms] (mean)
Time per request: 0.103 [ms] (mean, across all concurrent requests)
Transfer rate: 1591.19 [Kbytes/sec] received

CPU

ab -n 500000 -c 100 -k 127.0.0.1/redis_iresty_short

Concurrency Level:
Time taken for tests: 55.198 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 9058.32 [#/sec] (mean)
Time per request: 11.040 [ms] (mean)
Time per request: 0.110 [ms] (mean, across all concurrent requests)
Transfer rate: 1485.69 [Kbytes/sec] received

ab -n 1000000 -c 100 -k 127.0.0.1/redis_iresty_short

Concurrency Level:
Time taken for tests: 112.221 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 8911.00 [#/sec] (mean)
Time per request: 11.222 [ms] (mean)
Time per request: 0.112 [ms] (mean, across all concurrent requests)
Transfer rate: 1461.53 [Kbytes/sec] received

CPU 负载

ab -n 5000000 -c 100 -k 127.0.0.1/redis_iresty_short

比较慢,但是能跑

Concurrency Level:
Time taken for tests: 534.139 seconds
Complete requests:
Failed requests:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 9360.85 [#/sec] (mean)
Time per request: 10.683 [ms] (mean)
Time per request: 0.107 [ms] (mean, across all concurrent requests)
Transfer rate: 1535.31 [Kbytes/sec] received

redis_iresty_long.lua

--[[-----------------------------------------------------------------------
* | Copyright (C) Shaobo Wan (Tinywan)
* | Github: https://github.com/Tinywan
* | Author: Tinywan
* | Date: 2017/5/8 16:25
* | Mail: Overcome.wan@Gmail.com
* |------------------------------------------------------------------------
* | version: 1.0
* | description: redis_iresty 长连接带连接池测试
* |------------------------------------------------------------------------
--]]
local redis = require "resty.redis_iresty"
local red = redis:new() -- auth
local count
count, err = red:get_reused_times()
if == count then
local res, err = red:auth("tinywan123456")
if not res then
ngx.say("failed to authenticate: ", err)
return
end
elseif err then
ngx.say("failed to get_reused_times: ", err)
end local ok, err = red:set("OPenresty", "NGINX-based Media Streaming Server")
if not ok then
ngx.say("failed to set: ", err)
return
end ngx.say("set result: ", ok) local ok, err = red:set_keepalive(, )
if not ok then
ngx.say("failed to set keepalive: ", err)
return
end

ab -n 5000 -c 100 -k 127.0.0.1/redis_iresty_long   很好

Concurrency Level:
Time taken for tests: 1.110 seconds
Complete requests:
Failed requests:
Non-2xx responses:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 4502.59 [#/sec] (mean)
Time per request: 22.209 [ms] (mean)
Time per request: 0.222 [ms] (mean, across all concurrent requests)
Transfer rate: 1613.72 [Kbytes/sec] received

ab -n 10000 -c 100 -k 127.0.0.1/redis_iresty_long  很好

Concurrency Level:
Time taken for tests: 2.065 seconds
Complete requests:
Failed requests:
Non-2xx responses:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 4843.59 [#/sec] (mean)
Time per request: 20.646 [ms] (mean)
Time per request: 0.206 [ms] (mean, across all concurrent requests)
Transfer rate: 1735.94 [Kbytes/sec] received

ab -n 100000 -c 100 -k 127.0.0.1/redis_iresty_long   不是很好(不推荐)

Concurrency Level:
Time taken for tests: 19.675 seconds
Complete requests:
Failed requests:
Non-2xx responses:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 5082.71 [#/sec] (mean)
Time per request: 19.675 [ms] (mean)
Time per request: 0.197 [ms] (mean, across all concurrent requests)
Transfer rate: 1821.64 [Kbytes/sec] received

CPU 负载

ab -n 500000 -c 100 -k 127.0.0.1/redis_iresty_long  不是很好(不推荐)

Concurrency Level:
Time taken for tests: 95.891 seconds
Complete requests:
Failed requests:
Non-2xx responses:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 5214.28 [#/sec] (mean)
Time per request: 19.178 [ms] (mean)
Time per request: 0.192 [ms] (mean, across all concurrent requests)
Transfer rate: 1868.79 [Kbytes/sec] received

ab -n 1000000 -c 100 -k 127.0.0.1/redis_iresty_long   (不推荐)下面不再测试

Concurrency Level:
Time taken for tests: 190.008 seconds
Complete requests:
Failed requests:
Non-2xx responses:
Keep-Alive requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 5262.94 [#/sec] (mean)
Time per request: 19.001 [ms] (mean)
Time per request: 0.190 [ms] (mean, across all concurrent requests)
Transfer rate: 1886.23 [Kbytes/sec] received

CPU

OpenResty 高阶实战之————Redis授权登录使用短连接(5000)和长连接(500W) 使用连接池AB压力测试结果的更多相关文章

  1. Nginx网络架构实战学习笔记(五):大访问量优化整体思路、ab压力测试及nginx性能统计模块、nginx单机1w并发优化

    文章目录 大访问量优化整体思路 ab压力测试及nginx性能统计模块 ab压力测试及nginx性能统计模块 ab压力测试 nginx性能统计模块 nginx单机1w并发优化 整装待发: socket ...

  2. Spring Boot实战之Redis缓存登录验证码

    1.工具类 1 import lombok.experimental.UtilityClass; 2 3 import java.awt.*; 4 import java.awt.image.Buff ...

  3. ThinkPHP5高阶实战教程

    tp5项目:https://www.kancloud.cn/mikkle/thinkphp5_study/396283

  4. Thinkphp5 用ab压力测试工具测试高并发请求

    上篇文章[Thinkphp5实现悲观锁]已介绍过thinkphp5使用悲观锁实现高并发的场景,这篇文章将实际测试下. 在shell里进入到apache的bin目录,输入以下url: ab -n 100 ...

  5. react高阶组件的一些运用

    今天学习了react高阶组件,刚接触react学习起来还是比较困难,和大家分享一下今天学习的知识吧,另外缺少的地方欢迎补充哈哈 高阶组件(Higher Order Components,简称:HOC) ...

  6. sso单点登录系统的压力测试

    环境:vmware centos7.4 2cpu 2核心 工具:ab压力测试工具 测试对象:sso单点登录系统 电脑:win10 4核 项目环境:flask+uwsgi+nginx(uwsgi 2进程 ...

  7. 《React后台管理系统实战 :一》:目录结构、引入antd、引入路由、写login页面、使用antd的form登录组件、form前台验证、高阶函数/组件

    实战 上接,笔记:https://blog.csdn.net/u010132177/article/details/104150177 https://gitee.com/pasaulis/react ...

  8. Netty Redis 亿级流量 高并发 实战 (长文 修正版)

    目录 疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之 -30[ 博客园 总入口 ] 写在前面 1.1. 快速的能力提升,巨大的应用价值 1.1.1. 飞速提升能力,并且满足实际开发要求 1 ...

  9. 《Netty Zookeeper Redis 高并发实战》 图书简介

    <Netty Zookeeper Redis 高并发实战> 图书简介 本书为 高并发社群 -- 疯狂创客圈 倾力编著, 高度剖析底层原理,深度解读面试难题 疯狂创客圈 Java 高并发[ ...

随机推荐

  1. LAYOUT 注意点

    1:CLK时钟GND全包,可以适当调整布局使包地完整. 2:WIFI天线下层均净空GND 3:过孔尽量不打在焊盘上或距离焊盘太近容易漏锡

  2. 转发npm发布包的过程

    老板,来个npm账号! 因为你的包是要放在npm上的,所以,没有npm的账号,根本什么活都干不了. 在npm上注册一个账号是很简单的,随便填一下用户名密码邮箱,然后人家就会发个邮件给你,然后就注册成功 ...

  3. We are a 团队

    虽然在团队中只是拖后腿的存在,但是几个人一起摸索着前进也确实有着不一样的感觉. 我们队伍共有五个人:董强强.张振鑫.王鼎.高庆阳还有我(排名不分先后) 我们有自己的关于软件工程的QQ群,会在群里讨论一 ...

  4. 使用Arduino驱动基于ST7533芯片的TFT屏

    在合宙通信买了一个1.8寸的TFT屏,驱动芯片是ST7533,本来打算使用Air800直接驱动,但由于其他原因,放弃了.于是尝试使用arduino驱动,为了屏幕刷新速度更快,采用硬件SPI. 硬件连接 ...

  5. DHCP全局配置文件解析

    作用 参数 ddns-update-style  类型 定义DNS服务动态更新的类型,类型包括:none(不支持动态更新), interim (互动更新模式)与ad-hoc(特殊更新模式) allow ...

  6. PSP(3.16——3.22)以及周记录

    3.17 13:30 14:45 15 60 讨论班 A Y min 14:50 17:05 5 130 得到设备 Cordova 蓝牙连接 A Y min 23:15 23:45 5 25 英语百词 ...

  7. MySQL relay_log_purge=0 时的风险

    转自: http://xiezhenye.com/2015/12/mysql-relay_log_purge0-%E6%97%B6%E7%9A%84%E9%A3%8E%E9%99%A9.html 有时 ...

  8. IDEA中新建Module时Module name、Content root、Module file location的含义

    如下图测试: 最开始默认情况下,Content root.Module file location两行,最末尾的数据跟Module name是相同的. 现在对三行数据,强制进行不同的命名,Finish ...

  9. 【题解】 [HNOI2015]菜肴制作 (拓扑排序)

    题目描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号为1. 由于菜肴 ...

  10. 【agc002f】Leftmost Ball(动态规划)

    [agc002f]Leftmost Ball(动态规划) 题面 atcoder 洛谷 题解 我们从前往后依次把每个颜色按顺序来放,那么如果当前放的是某种颜色的第一个球,那么放的就会变成\(0\)号颜色 ...