Redis冷知识

前言

提示:本文章是日常学习内容的总结,并非全部原创;仅供大家参考借鉴,并无其他商业用途。

1、Redis测试性能

redis-benchmark 是一个压力测试工具!
官方自带的性能测试工具!
redis-benchmark 命令参数!

序号 选项 描述 默认值
1 -h 指定服务器主机名 127.0.0.1
2 -p 指定服务器端口 6379
3 -s 指定服务器 socket
4 -c 指定并发连接数 50
5 -n 指定请求数 10000
6 -d 以字节的形式指定 SET/GET 值的数据大小 2
7 -k 1=keep alive 0=reconnect 1
8 -r SET/GET/INCR 使用随机 key, SADD 使用随机值
9 -P 通过管道传输 <numreq> 请求 1
10 -q 强制退出 redis。仅显示 query/sec 值
11 --csv 以 CSV 格式输出
12 -l 生成循环,永久执行测试
13 -t 仅运行以逗号分隔的测试命令列表。
14 -I Idle 模式。仅打开 N 个 idle 连接并等待。

测试:100个并发连接 100000请求

redis-benchmark -h localhost -p 6379 -c 100 -n 100000

在这里插入图片描述

2、 基础的知识

redis默认有16个数据库
默认使用的是第0个
可以使用 select 进行切换数据库!

127.0.0.1:6379> select 3 # 切换数据库 
OK
127.0.0.1:6379[3]> DBSIZE # 查看DB大小! 
(integer) 0

查看数据库所有的key

127.0.0.1:6379[3]> keys * # 查看数据库所有的key 1)
"name"

清除当前数据库 flushdb
清除全部数据库的内容 FLUSHALL

127.0.0.1:6379[3]> flushdb 
OK
127.0.0.1:6379[3]> keys * 
(empty list or set)

3、Redis为什么这么快

Redis 是单线程的!

明白Redis是很快的,官方表示,Redis是基于内存操作,
CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽
既然可以使用单线程来实现,就使用单线程了!所有就使用了单线程了!
Redis 是C 语言写的,官方提供的数据为 100000+ 的QPS,
完全不比同样是使用 key-vale的Memecache差!

4、Redis 为什么单线程还这么快?

1、误区1:高性能的服务器一定是多线程的?
2、误区2:多线程(CPU上下文会切换!)一定比单线程效率高!

先去CPU>内存>硬盘的速度要有所了解!
核心:redis 是将所有的数据全部放在内存中的,所以说使用单线程去操作效率就是最高的,多线程(CPU上下文会切换:耗时的操作!!!),
对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上的,在内存情况下,这个就是最佳的方案!

猜你喜欢

转载自blog.csdn.net/ws13575291650/article/details/112424387