《面试1v1》Redis基础
  5YI10LEk8YTp 2023年11月02日 87 0

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

面试官:来吧,聊聊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》连载中...


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  xaeiTka4h8LY   2024年05月31日   41   0   0 MySQL数据库
  xaeiTka4h8LY   2024年05月31日   33   0   0 Dockerredis
  xaeiTka4h8LY   2024年05月31日   44   0   0 nosqlredis
  xaeiTka4h8LY   2024年05月17日   53   0   0 数据库SQL
  xaeiTka4h8LY   2024年05月17日   38   0   0 MySQL数据库
  xaeiTka4h8LY   2024年05月31日   39   0   0 数据库mongodb
5YI10LEk8YTp