🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪
🍅 技术交流:定期更新Java硬核干货,不定期送书活动
🍅 王哥多年工作总结:Java学习路线总结, 点击 突击面试
🍅 数十万人的面试选择: 面试说人话系列《面试1v1》
我是 javapub,一名 Markdown
程序员从👨💻,八股文种子选手。
《面试1v1》 连载中…
我是 javapub,一名 Markdown
程序员从👨💻,八股文种子选手。
面试官: 来吧,聊聊Redis,这个NoSQL数据库你用过吧?
候选人: 用过用过,Redis是我最喜欢的NoSQL数据库,性能超高,用起来特顺手。
面试官: 那你说说Redis有什么优点?
候选人: Redis的优点很多:
- 速度快,是基于内存的数据库,CPU不是性能瓶颈,读的速度是110000次/s,写的速度是81000次/s 。
- 支持丰富数据类型,不仅仅是String,还有List,Set,Sorted Set,Hash等等。
- 持久化,可以将内存中的数据写入磁盘,确保数据的持久性。
- 简单易用,Redis只需要6个命令就可以满足基本所有需求,非常易于学习和使用。
- 高可用,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》系列文章,主要以场景化的方式,讲解我们在面试中遇到的问题,致力于让每一位工程师拿到自己心仪的offer,感兴趣可以关注JavaPub追更!
《面试1v1》 连载中…
🎁目录合集:
Gitee:https://gitee.com/rodert/JavaPub
GitHub:https://github.com/Rodert/JavaPub
http://javapub.net.cn