既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
incrby key increment
decrby key increment
# 设置k1的值自增100
incrby k1 100
mset key1 value1 key2 value2 ...
同时设置多个键值对
mget key1 key2 ...
同时获取多个键值对
同时设置多个数据库中不存在的键值对,如果其中一个键存在,则所有的内容都不会被创建成功
msetnx key1 value1 key2 value2 …
strlen key
获取字符串的长度
getrange key start end
遍历输出
getrange name 0 -1
获取第一个字符第3个字符
getrange name 0 2
setrange key 开始位置 value
用新的值覆盖旧值
setex key 过期时间 value
设置值得同时设置过期时间,单位为秒
# 过期时间20秒 值为v1
setex k5 20 v1
获取旧得值填充新的值
getset key value
getset k1 33
字符串的数据结构
String的数据结构为简单动态字符串(Simple Dynamic String)是可以修改的字符串,内部的实现结构和python中的list
类似,都是先预先分配一些空间,当空间不够用会自动扩充空间的大小,最大长度为512M
Redis列表(List)
Redis列表是简单的字符串列表,按照插入顺序排序,你可以添加应给元素到表头或者尾
它的底部实际是个双向链表,对两端的操作性性能很高,通过索引下标的操作中间节点的性能较差。
列表常用命令
lpush/rpush key value1 value2 value3
从左边/右边插入一个或者多个值lpop/rpop key
从左边/右边弹出一个值 值在键在,键光键亡rpoplpush key1 key2
从key1列表右边弹出一个值,插入到key2列表的左边lrange key start stop
按照索引下标获得元素(从左到右)
代码演示
lindex key index
按照索引下标获得元素llen key
获取列表的长度
linsert key before value newvalue
在value的前面插入newvalue
在3的前面插入99
linsert k1 before 3 99
在99的后面插入55
linsert k1 after 99 55
lrem key n value
从左边删除n个value(删除重复值)
删除k4列表中左面3个2
lpush k4 1 2 2 3 2 1 5 2
lrem k4 3 2
lrange k4 0 -1
lset key index value
将列表key下标为index的值替换成value
lpush k5 1 2 3 4 5
# 将索引为2的值替换成22
lset k5 2 22
# 将索引为3的值替换成44
lset k5 3 44
列表的数据结构
list的数据结构是快速链表
首先在列表元素较少的情况下会使用一块连续的内存存储,这个结构是ziplist压缩列表,所有的元素在一块连续的内存空间
元素较多时,才会改成quicklist,
quicklist是将多个ziplist用双向链表的形式链接起来的数据结构
Redis 集合(Set)
是一个无序不重复的序列,集合成员是唯一的
操作类似于list
底层是一个value为null的hash表,添加,删除,查找的复杂度都是O(1)
集合的常用命令
sadd key value1 value2 ...
将元素添加到集合key中,如果新添加的元素已经在集合中存在,则会被忽略
# 向s1集合中添加元素
sadd s1 1 2 3 4 4 4
smembers key
取出该集合的所有值
# 查看s1中的集合
smembers s1
sismember key value
判断集合中是否存在该值 有返回1 没有返回0
sadd s2 1 2 3 4 5
sismember s2 2 # 返回1
sismember s2 6 # 返回0
scard key
返回集合的个数
scard s2
srem key value1 value2 ...
删除集合中的某些元素
sadd s3 1 2 3 4 5 6 7 8
srem s3 3 4 7 # 删除成功
srem s3 3 # 当删除的元素不存在时,返回0,不会报错
spop key [count]
随机弹出一个元素,或者多个元素
spop s3 # 随机弹出一个元素
spop s3 2 # 随机弹出2个元素
srandmember key [count]
随机从该集合中取出n个值,不会从集合中删除,默认n为1,当n大于集合的长度时,返回集合中的所有元素
srandmember s3 # 随机取出一个值
srandmember s3 2 # 随机取出2个值
smove source destination value
将一个值从一个集合移动到另一个集合
sadd s4 1 2 3
sadd s5 6 7 8
# s4中的2移动到s5中
smove s4 s5 2
redis中的集合和数学中的集合一样也有交集并集差集的计算方式
sinter key1 key2
返回两个集合的交集sunion key1 key2
返回两个集合的并集sdiff key1 key2
返回两个集合的差集
实例
集合的数据结构
集合的数据结构dict字典,字典是使用哈希表实现的,所有的的value值都指向同一个外部值
Redis 哈希(Hash)
Redis hash 是一个键值对集合,是string类型和field和value的映射表,hash适合存储对象
哈希的常用命令
hset key field value
将哈希表 key 中的字段 field 的值设为 value 。hget key field
获取在哈希表中指定 key 的所有字段和值hmset key field1 value1 field2 value2
同时将多个 field-value (域-值)对设置到哈希表 key 中。hmget key field1 field2
获取所有给定字段的值
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
的值
[外链图片转存中…(img-VTLYsn8q-1715687783849)]
[外链图片转存中…(img-AZyjwTwp-1715687783849)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!