昨天介绍了 redis的基本操作,今天来介绍一下 redis的基本命令
1.首先我们先来 介绍一下 redis默认是有16个数据库的
可以使用select 对数据库进行切换【和MySql的use差不多】 (如果不切换,某人的数据库就是 0);
select 3 切换数据库
DBSIZE 查看DB大小!
keys * 查看数据库所有的key
flushdb 清除当前数据库 flushdb
flushall 清除全部数据库的内容
FLUSHALL
思考:
- 为什么redis是 6379!【默认端口号】(了解一下即可!)
- redis为什么是单线程的(当然新版本的redis使用了多线程方式,我们后面在做介绍)
- Redis 为什么单线程还这么快?
第一个问题:
Alessia Merz 是一位意大利舞女、女演员。 Redis 作者 Antirez 早年看电视节目,觉得 Merz 在节目中的一些话愚蠢可笑,Antirez喜欢造“梗”用于平时和朋友们交流,于是造了一个词 "MERZ",形容愚蠢,与 "stupid" 含义相同。后来 Antirez 重新定义了 "MERZ" ,形容”具有很高的技术价值,包含技艺、耐心和劳动,但仍然保持简单本质“。到了给 Redis 选择一个数字作为默认端口号时,Antirez 没有多想,把 "MERZ" 在手机键盘上对应的数字 6379 拿来用了。
第二个问题:
明白Redis是很快的,官方表示,Redis是基于内存操作,CPU不是Redis性能瓶颈,Redis的瓶颈是根据
机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程了!所有就使用了单线程了!
Redis 是C 语言写的,官方提供的数据为 100000+ 的QPS,完全不比同样是使用 key-vale的
Memecache差!
第三个问题:
1、误区1:高性能的服务器一定是多线程的?
2、误区2:多线程(CPU上下文会切换!)一定比单线程效率高!
先去CPU>内存>硬盘的速度要有所了解!
核心:redis 是将所有的数据全部放在内存中的,所以说使用单线程去操作效率就是最高的,多线程
(CPU上下文会切换:耗时的操作!!!),对于内存系统来说,如果没有上下文切换效率就是最高
的!多次读写都是在一个CPU上的,在内存情况下,这个就是最佳的方案!