redis-benchmark 是一个压力测试工具
命令参数:
测试:
# 测试:100个并发连接 100000个请求
redis-benchmark -h 39.101.161.167 -p 6379 -c 100 -n 100000
基础知识:
redis默认有16个数据库
默认使用的是第0个
select #切换数据库 DBSIZE #查看DB大小
# 查看数据库所有的key keys * # 清空数据库 flashdb # 清除所有数据库的值 flashall
redis是单线程的
Redis是基于内存操作,CPU不是redis的性能瓶颈,redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,所以就使用了单线程
redis是C语言写的,官方提供的数据 100000+的QPS,完全不比同样是使用key-value的Memecache差!
redis为什么单线程还这么快
误区:
- 高性能的服务器一定是多线程的?
- 多线程(CPU上下文切换)一定比单线程效率高!CPU>内存>硬盘
核心:
redis是将所有的数据全部放在内存中的,所以使用单线程去操作效率就是最高的,多线程(CPU上下文切换:耗时的操作!!),对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上的,在内存情况下,这个就是最佳的方案。