likes
comments
collection
share

《面试1v1》Redis基础

作者站长头像
站长
· 阅读数 10

我是 javapub,一名 Markdown 程序员从👨‍💻,八股文种子选手。


《面试1v1》 连载中...


面试官: 来吧,聊聊Redis,这个NoSQL数据库你用过吧?

候选人: 用过用过,Redis是我最喜欢的NoSQL数据库,性能超高,用起来特顺手。

面试官: 那你说说Redis有什么优点?

候选人: Redis的优点很多:

  1. 速度快,是基于内存的数据库,CPU不是性能瓶颈,读的速度是110000次/s,写的速度是81000次/s 。
  2. 支持丰富数据类型,不仅仅是String,还有List,Set,Sorted Set,Hash等等。
  3. 持久化,可以将内存中的数据写入磁盘,确保数据的持久性。
  4. 简单易用,Redis只需要6个命令就可以满足基本所有需求,非常易于学习和使用。
  5. 高可用,Redis官方提供了Sentinel和Cluster两种方案,很容易实现高可用。

面试官: 说的不错,我再问你几个Redis的基本命令,来测试一下你的熟练程度。gest set key value,这条命令的作用是?

候选人: set key value 这个命令的作用是给指定的key设置字符串值value。如果key已经存在,则覆盖原来的值。

例如:

set name "john"

面试官: get key这个命令呢?

候选人: get key这个命令用来获取指定key的值。例如:

get name   # "john"

面试官: 那setex key seconds value呢?这个命令有什么作用?

候选人: setex key seconds value 这个命令用于设置key的值为value,并且设置这个键值对的过期时间为seconds秒。

例如:

setex name 30 "jack" # 设置name的值为"jack",30秒后过期
get name   # "jack"
# 30秒后
get name   # nil,键值对已经过期

面试官: setnx key value又是什么作用?

候选人: setnx key value 这个命令只在键key不存在时,将其值设置为value。如果键key已经存在,则不做任何操作。这是"SET if Not eXists"的简写。

例如:

set name "john"
setnx name "jack" # 不做任何操作,name的值保持为"john"
setnx age 30      # 设置age值为30,因为age键原来不存在

《面试1v1》Redis基础

最近我在更新《面试1v1》系列文章,主要以场景化的方式,讲解我们在面试中遇到的问题,致力于让每一位工程师拿到自己心仪的offer,感兴趣可以关注JavaPub追更!


《面试1v1》 连载中...


🎁目录合集:

Gitee:https://gitee.com/rodert/JavaPub

GitHub:https://github.com/Rodert/JavaPub

javapub.net.cn