Redis基础
大约 2 分钟
我是 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 的基本命令,来测试一下你的熟练程度。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追更!
🎁目录合集:
Gitee:https://gitee.com/rodert/JavaPub
GitHub:https://github.com/Rodert/JavaPub