Redis是一个key-value的数据库,key一般是String类型,value的类型很多

用途

  • 数据库
  • 缓存系统
  • 消息队列

不要把他看作简单的数据库,而是根据实际应用的需求去使用

对数据库操作

redis 有16个数据库,默认使用0号数据库

1
2
# 切换数据库 3 
select 3

一些常见的数据库指令

1
2
3
4
5
# 获取当前数据库的大小
DBSIZE # 0
# 若给他输入一个值
set name qin
DBSIZE # output : 1
1
2
3
# 查看所有的 key 
keys *
# output name -- 因为上面我set了一个name
1
2
3
4
5
6
7
# 清空

# 清空当前库
flushdb

#清空所有库
flushall

redis 单线程

Redis是基于内存操作的,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络的带宽

既然可以使用单线程来实现,就使用了单线程

为什么Redis单线程还这么快

误区1:

​ >高性能的服务器一定是多线程的

误区2:

​ > 多线程(CPU上下文会切换)一定比单线程效率高

一般来说速度: CPU>内存>硬盘

原因

  1. redis所有数据放在内存中,所以单线程操作效率高(对于内存系统来说,没有上下文切换效率就是最高的)
  2. 多路复用

Redis-Key

1
2
3
4
5
6
# 判断key是否存在
set name hehhe
exists name
# output : 1 表示存在
exists hh
# output : 0
1
2
3
4
5
# 设置过期时间
EXPIRE name 10 #十秒后过期
ttl name # 显示还有多少时间过期
# output : -2 表示已经没了
# output : -1 表示存在
1
2
3
# 查看 某个key的类型
type name
# output : string