redis7学习
redis7学习
redis十大类型
string、list、hash、set、zset、geo、hyperloglog基数统计、bitmap、bitfield、stream流
常用命令:
keys * 查看所有的元素
exists key 是否key存在,1是存在,0是不存在
type key 判断key存的是什么类型
del key 删除某个key
ttl key 判断某个key的过期时间
unlink key
expire key
dbsize
select 1
move
flushdb
flushall
keepttl
setex a 10 helloword
bitmap 0和1二进制数值
PFADD hll a b c d e f g 去重统计
高级篇学习
1、redis是单线程还是多线程
答:4之前是单线程的,5.0或者6.0之后是多线程的,网络请求是多线程的io,读写还是单线程
2、redis为啥这么快
基于内存操作、数据结构简单大部分都是n(1)、多路复用+epoll函数、避免上下文切换
3、bigkey问题
keys *生产环境禁用,可以使用scan
如果查看打key --bigkes
4、如何保证双写一致性
使用canel中间件实现数据的同步、使用消息中间件实现消息的同步
5、查询附近的酒店-geo实现
6、布隆过滤器bloomfilter 判断海量数据是否存在某条数据
7、redis内存满了怎么办?
redis默认大小是0,不限制内存大小
推荐设置物理内存的三分之二
info memory 查看内存大小
删除策略:立即删除、惰性删除、定期删除
8、缓存预热
9、分布式锁实现原理:设置一个唯一的key,判断是否存在,然后删除掉
10、lua脚本是为了保证多条命令一起执行,java代码里面的操作不是一条上面,可以用lua脚本实现
11、select、poll、epoll函数
redis持久化
rdb和aop
aop操作
三种写回策略
always
everysec
no
redis事务
可以一次执行多个命令
springboot和redis实战
java连接redis客户端是jedis和lettuce
jedis操作reids就是通过常用命令一下使用
redistemplate操作redis
redis集群会有问题,集群下线感知不到
解决方案:
redis集群部署
16384个槽
分布式锁:
setnx不能重入,hset可以解决重入性,
单线程和多线程理解:
多线程接收客户端请求,单线程处理读写操作
多路复用模型:select模型、poll模型、epoll模型
redis持久化:快照和命令
写时复制,先复制一份出来,然后重命名文件
aof持久化:redis每次将写操作命令记录到文件中。
rewite对aop进行整理,通过子进程bgrewiteaof
aof同步策略:everysec、no、always
aof持久化过程:
写命令道缓冲区--》写入到aof文件,---》rewrite-----临时文件--------》
rdb和aof对比
rdb恢复快,安全性比较差,写时复制降低性能。
集群搭建:
主从,分级处理
主从复制过程:
先持久化,然后把持久化文件发送给slave
psync不完全同步
脑咧问题
缓存击穿、缓存穿透、缓存雪崩
双重检测锁
分布式锁需要解决:锁的释放、锁的过期时间、加锁释放锁需要一致性(通过uuid控制),锁的重入性,锁的续约
redisson
默认30秒,三分之一开始续命,
分段锁
公平锁
学习地址
参考学习视频:https://www.bilibili.com/video/BV13R4y1v7sP?p=11&spm_id_from=pageDriver
https://try.redis.io/
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~