一个不喜欢电脑的程序员
点赞再看,养成习惯
Redis中文官网地址
金九银十,你出去面试,面试官问你,同学Redis都有哪些数据结构啊?
答:字符串String、字典Hash、列表List、集合Set、有序集合ZSet
这个问题99%的人都能回答上来,回答不出来的小伙伴,那你该加油了哦
那你再讲讲Redis有哪些基础的命令嘞?
答:get 和 set
你要这么答,面试官可能就会和你扯扯其他的了
那你对目前的德尔塔病毒怎么看?
好了,至此,你已凉凉,和面试官吹吹牛B,就开始准备下一场吧
有没有觉得很惨,别问我怎么知道的。哈哈,基础不牢,地动山摇。让我们看看Redis
的那些枯燥的命令api吧。。。。
String
命令 | 说明 |
---|---|
set | 设置一个key值 |
get | 获取一个key的值 |
append | 在指定的key后追加字符串,如果当前key不存在,就set key |
incr | 当前key的value自增1 |
decr | 当前key的value自减1 |
List
命令 | 说明 |
---|---|
lpush | 给list的头部添加新元素 |
rpush | 给list的尾部添加新元素 |
lrange | 获取list中指定范围的元素 |
lpop | 移除list左侧第一个元素,并返回该元素 |
rpop | 移除list右侧第一个元素,并返回该元素 |
lindex | 获取list中指定索引的元素 |
llen | 获取list的长度 |
lrem | 移除list中指定的元素以及元素个数 |
ltrim | 保留list中的某一部分元素 |
rpoplpush | 删除list的尾部元素,并把该元素添加到新 list 的头部 |
lset | 更新当前索引的值,若不存在则会报错 |
linsert | 在列表的指定值之前(或之后)添加新值 |
Set
命令 | 说明 |
---|---|
sadd | 给set集合中添加元素 |
smembers | 查看set集合中所有的元素 |
sismember | 判断一个值是不是在set集合中 |
scard | 获取set中元素个数 |
srem | 删除元素 |
srandmember | 随机抽出集合中的一个元素 |
spop | 删除第一个一个元素,并返回 该元素 |
smove | 将一个指定的元素移动到另一个集合中 |
sdiff | 求两个集合的差集 |
sinter | 求两个集合的交集 |
sunion | 求两个 集合的并集 |
Hash
命令 | 说明 |
---|---|
hset | 设置key-value |
hget | 获取键值 |
hmset | 批量设置键值 |
hgetall | 获取所有的键值 |
hdel | 删除指定的键 |
hmget | 批量获取键值 |
hlen | 获取键值对个数 |
hexists | 判断hash中指定字段是否存在 |
hkeys | 获取所有的key |
hvals | 获取所有的value |
ZSet
命令 | 说明 |
---|---|
zadd | 添加值 |
zrange | 获取指定索引的值 |
zrangebyscore | 从小到大排序 |
zrevrange | 从大到小排序 |
zrem | 删除有序集合中的指定元素 |
zcard | 获取元素个数 |
zcount | 获取指定区间的数据个数 |
一些重要的其他命令
命令 | 说明 |
---|---|
keys * | 获得所有的key |
exists | 判断某个key是否存在 |
setex(set with expire) | 设置key,并设置key的超时时间 |
setnx(set if not exists ) | key不存在时设置成功,否则失败返回0,在分布式锁中常用 |
msetnx | key不存在时设置成功,原子性操作 |
getset | get到key的旧值后,给key设置新值 |
select + 数据库名 | redis有16个数据库,可以用select选择使用哪个数据库(1~16) |
好了,以上就是redis
的一些常用命令。可能很多人觉得,这些东西不应该去死记硬背,用的时候去查一查就好了。但是往往我们对知识的掌握程度,就体现在这些细枝末节的东西上。
关于这几大数据类型的具体应用和区别,在之后也会详细讲到,还请持续关注。你的关注,是我创作最大的动力!
命令很多,忍一手就过去了。觉得对你有用的话,还请一键三连哦!