Redis基础—二、基本知识及benchmark性能测试
一、benchmark性能测试
redis可以使用benchMark进行基本的性能测试,其基本命令如下:
redis-benchmark [option] [option value]
![image-20201117163627145](https://img-blog.csdnimg.cn/img_convert/93daee0307ab06c2b5b58e7d78f6c885.png)
redis-benchmark -c 100 -n 100000 #指定并发连接数为100,请求数为10万
我们以set请求为例:
![image-20201117164935360](https://img-blog.csdnimg.cn/img_convert/64a3969b5dc6b5a1b357fcd7b553f9d1.png)
所以看来redis还是很快的!
二、基本知识
redis其实默认有16个数据库
![image-20201117170959723](https://img-blog.csdnimg.cn/img_convert/149a0404f9ed73f2c61b85de9b7c67d9.png)
默认使用的是第0个,我们可以通过select命令进行切换。
127.0.0.1:6379> select 1 #切换到第一个
OK
可以通过dbsize命令查看数据库大小
127.0.0.1:6379[1]> dbsize #查看数据库大小
(integer) 0
127.0.0.1:6379[1]> set name jj #设置进去jj
OK
127.0.0.1:6379[1]> dbsize #再查看一下!
(integer) 1
还有一些常用的指令。
keys * # 查看当前数据库所有的key
flushdb # 清空当前库
flushall # 清空所有数据库
redis是单线程的
redis是很快的,官方表示,redis是基于内存操作的,cpu不是redis的性能瓶颈,redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,那就使用了单线程了!所以就使用了单线程,
Redis是由c语言写的,官方提供的数据为 100000+的QPS,说明这个完全不比memecache差!
Redis 为什么单线程还更快?
- 误区:高性能的服务器一定是多线程的?
- 误区:多线程一定比单线程效率高(上下文切换会影响速度)
核心:redis是将所有的数据全部放在内存里面的,所以说使用单线程操作效率就是最高的(CPU上下文切换是一个耗时的操作)
对于内存系统来说,如果没有上下文切换,效率就是最高的!多次读写都是在一个cpu上的,在内存情况下,这个就是最佳的方案