面试题39:redis单线程为什么那么快?redis支持的数据类型有哪些?

2023-05-09 21:42:09 浏览数 (1)

【redis单线程为什么那么快?】

  • 纯内存操作,避免大量访问数据库,减少直接读取磁盘数据,redis将数据储存在内存里面,读写数据的时候都不会受到硬盘 I/O 速度的限制,所以速度快;
  • 单线程操作,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗;
  • 采用了非阻塞I/O多路复用机制;

【redis支持的数据类型】

  • 字符串(String)

可以用来做最简单的数据缓存,可以缓存某个简单的字符串,也可以缓存某个json格式的字符串,Redis分布式锁的实现就利用了这种数据结构,还包括可以实现计数器、Session共享、分布式ID

  • 哈希表(Hash)

可以用来存储一些key-value对,更适合用来存储对象

  • 列表(List)

Redis的列表通过命令的组合,既可以当做栈,也可以当做队列来使用,可以用来缓存类似微信公众号、微博等消息流数据

  • 集合(Set)

和列表类似,也可以存储多个元素,但是不能重复,集合可以进行交集、并集、差集操作,从而可以实现类似,我和某人共同关注的人、朋友圈点赞等功能

  • 有序集合(ZSet)

集合是无序的,有序集合可以设置顺序,可以用来实现排行榜功能

0 人点赞