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/

posted @   刘百会  阅读(89)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示