Redis常用命令(超详细整理)

  • get key: 返回key的value

  • mget key [key …] : 批量获取多个key保存的值

  • exists key [key …]: 查询一个key是否存在

  • decr/incr key: 将指定key的value数值进行+1/-1(仅对于数字)

  • incrby/decrbyB key n: 按指定的步长对数值进行加减

  • incrbyfloat key n: 为数值加上浮点型数值

  • append key value: 向指定的key的value后追加字符串

  • strlen key: 返回key的string类型value的长度。

  • getset key value: 设置一个key的value,并获取设置前的值,如果不存在则返回null

  • setrange key offset value: 设置指定位置的字符

  • getrange key start end: 获取存储在key上的值的一个子字符串

代码示例:

在这里插入图片描述

List(列表)


Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),也可以获取指定范围指定下标的元素等。一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

两个特点:

1.列表中的元素是有序的,可以通过索引下标获取某个元素霍某个某个范围内的元素列表

2.列表中的元素可以是重复的

使用场景: 消息队列、栈、文章列表等。

常用指令:

  • 添加操作

  • lpush/rpush key value1[value2…]: 从左边/右边向列表中PUSH值(一个或者多个)

  • lpushx/rpushx key value: 向已存在的列名中push值(一个或者多个),list不存在 lpushx失败

  • linsert key before|after pivot value: 在指定列表元素的前/后 插入value

  • 查找操作

  • lindex key index: 通过索引获取列表元素

  • lrange key start end: 获取list 起止元素 (索引从左往右 递增)

  • llen key: 查看列表长度

  • 删除操作

  • lpop/rpop key: 从最左边/最右边移除值 并返回

  • lrem key count value: count >0:从头部开始搜索 然后删除指定的value 至多删除count个 count < 0:从尾部开始搜索… count = 0:删除列表中所有的指定value。

  • ltrim key start end: 通过下标截取指定范围内的列表

  • rpoplpush source destination: 将列表的尾部(右)最后一个值弹出,并返回,然后加到另一个列表的头部

  • 修改操作

  • lset key index value: 通过索引为元素设值

  • 阻塞操作

  • blpop/brpop key1[key2] timout: 移出并获取列表的第一个/最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

  • brpoplpush source destination timeout: 和rpoplpush功能相同,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

代码示例:

在这里插入图片描述

Set(集合)


Redis的Set是string类型的无序集合,我们不能通过索引获取元素。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

应用场景: 标签(tag)

常用命令:

  • 集合内操作

  • sadd key member1[member2…]: 向集合中无序增加一个/多个成员

  • srem key member1[member2…]: 移除集合中一个/多个成员

  • scard key: 获取集合的成员数

  • smembers key: 返回集合中所有的成员

  • sismember key member: 查询member元素是否是集合的成员,若存在返回1,不存在返回0

  • srandmember key [count]: 随机返回集合中count个成员,count缺省值为1

  • spop key [count]: 随机移除并返回集合中count个成员,count缺省值为1

  • 集合间操作

  • sinter key1 [key2…]: 返回所有集合的交集

  • sinterstore destination key1[key2…]: 在SINTER的基础上,存储结果到集合中。覆盖

  • sunion key1 [key2…]: 返回所有集合的并集

  • sunionstore destination key1 [key2…]: 在SUNION的基础上,存储结果到及和张。覆盖

  • sdiff key1[key2…]: 返回所有集合的差集 key1- key2 - …

  • sdiffstore destination key1[key2…]: 在SDIFF的基础上,将结果保存到集合中。覆盖

  • smove source destination member: 将source集合的成员member移动到destination集合

  • sscan key [MATCH pattern] [COUNT count]: 在大量数据环境下,使用此命令遍历集合中元素,每次遍历部分

代码示例:

在这里插入图片描述

Hash(哈希)


几乎所有的编程语言都提供了哈希(hash)结构,Redis中 hash 是一个string类型的field和value的映射表value={{field1,value1},{field2,value2}…},可以将一个Hash表作为一个对象进行存储,表中存放对象的信息。

应用场景: 用户信息缓存

常用命令:

  • hset key field value: 将哈希表 key 中的字段 field 的值设为 value。重复设置同一个field会覆盖,返回0

  • hmset key field1 value1 [field2 value2…]: 同时将多个 field-value (域-值)对设置到哈希表 key 中。

  • hsetnx key field value: 只有在字段 field不存在时,设置哈希表字段的值。

  • hget key field value: 获取存储在哈希表中指定字段的值

  • hmget key field1 [field2…]: 获取所有给定字段的值

  • hexists key field: 查看哈希表 key 中,指定的字段是否存在。

  • hdel key field1 [field2…]: 删除哈希表key中一个/多个field字段

  • hlen key: 获取哈希表中字段的数量

  • hkeys key: 获取所有字段field

  • hvals key: 获取哈希表中所有值value

  • hgetall key: 获取在哈希表key 的所有字段和值

  • hincrby key field n: 为哈希表 key 中的指定字段的整数值加上增量n,并返回增量后结果 一样只适用于整数型字段

  • hincrbyfloat key field n: 为哈希表 key 中的指定字段的浮点数值加上增量 n。

  • hscan key cursor [MATCH pattern] [COUNT count]: 迭代哈希表中的键值对。

代码示例:

在这里插入图片描述

Zset(有序集合)


在有序集合中保留了不能有重复成员的特性,但其中的成员是可以排序的,每一个元素都会关联一个double类型的分数(score)作为排序依据,score相同时按字典顺序排序。redis正是通过分数来为集合中的成员进行从小到大的排序。

应用场景: 排行榜系统,成绩单,工资表

常用命令:

  • 集合内

  • zadd key score member1 [score2 member2]: 向有序集合添加一个或多个成员,或者更新已存在成员的分数

  • zcard key: 获取有序集合的成员数

  • zscore key member: 返回有序集中,成员的分数值

  • zcount key min max: 计算在有序集合中指定区间score的成员数

  • zlexcount key min max: 在有序集合中计算指定字典区间内成员数量

  • zincrby key n member: 有序集合中对指定成员的分数加上增量 n

  • zscan key cursor [MATCH pattern] [COUNT count]: 迭代有序集合中的元素(包括元素成员和元素分值)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

Java架构学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
在这里插入图片描述

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
高性能、分布式,性能优化,微服务 高级架构开发等等。

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
[外链图片转存中…(img-0DhjW4Kl-1712058305462)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值