-
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上的值的一个子字符串
代码示例:
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功能相同,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
代码示例:
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)结构,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]: 迭代哈希表中的键值对。
代码示例:
在有序集合中保留了不能有重复成员的特性,但其中的成员是可以排序的,每一个元素都会关联一个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开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/d7a932c9635fa49d9a1b121b3375ead9.jpeg)
最后
Java架构学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。
还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
高性能、分布式,性能优化,微服务 高级架构开发等等。
还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
[外链图片转存中…(img-0DhjW4Kl-1712058305462)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!