Redis基础知识

Redis基础知识

redis默认有16个库

# 连接数据库 连接本地redis
redis-cli
# 连接远程redis
redis-cli -h host -p port -a password
# 验证连接 如成功应该返回pong 
ping

# 切换至3号数据库[0-15]
select 3

# 显示所有key
keys *
keys na* #显示na开头的key

#清除当前数据库
flushdb
#清除所有数据库
flushall

# 设置key-value
set name ohmydream

# 获取value
get name

#查看数据库大小
dbsize

redis 端口为什么设置为6379?

粉丝效应,创始人喜欢的意大利歌女MERZ 在九键上对应的数字即6379

redis 是单线程还是多线程?

单线程实现,Redis是基于内存的操作,CPU不是Redis的性能瓶颈,Redis的瓶颈是机器内存大小和网络带宽,既然可以使用单线程,就使用单线程好了,故使用单线程

redis 单线程为啥还那么快?

1.误区一:高性能服务器一定是多线程的

2.误区二:多线程(CPU上下文会切换)一定要比单线程效率高

  • 对于内存系统来说,如果没有上下文切换效率就是最高的,多次读写都是在内存中操作,非常快速。
  • 数据结构简单,对数据操作也简单,Redis中数据结构是专门设计的。Redis全程使用hash结构,读取速度快,还有一些特殊的数据结构,对数据存储进行了优化,如压缩表,对数据进行压缩存储,再如跳表,使用有序的数据结构加快读取的速度。
  • 采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,不用考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗。
  • 使用多路I/O复用模型,非阻塞IO。
  • 使用底层模型不同,它们之间底层实现方式以及客户端之间通信的应用协议不一样,Redis直接构建了VM机制,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
posted @ 2022-02-23 16:15  Oh,mydream!  阅读(27)  评论(0编辑  收藏  举报