![](https://img-blog.csdnimg.cn/direct/bfdb9838f361495a9cc56a867fae4284.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Redis
文章平均质量分 89
笔记
白小筠
这个作者很懒,什么都没留下…
展开
-
Redis面试题
假设Redis中现在存在大量过期key,而这些过期key如果都不被使用,它们就会保留在redis中,造成内存空间一直被占用。 **它不持续关注key的过期时间, 而是在获取key时,才会检查key是否过期,如果过期则删除该key。这有什么好说的,之前不是已经学过EXPIRE命令了, 给key设置过期时间,到期了不就删除了吗? 它会在设置键的过期时间的同时,创建一个定时器, 当键到了过期时间,定时器会立即对键进行删除。绝大多数的键都是携带过期时间的,这样就会造成出现大量定时器执行,严重降低系统性能。原创 2024-01-16 11:03:34 · 866 阅读 · 0 评论 -
Redis分片集群
利用cluster failover命令可以手动让集群中的某个master宕机,切换到执行cluster failover命令的这个slave节点,实现无感知的数据迁移。我们需要执行命令来创建集群,在Redis5.0之前创建集群比较麻烦,5.0之后集群管理命令都集成到了redis-cli中。redis-cli --cluster add-node 新节点的ip和端口 已存在的节点和端口。设置已存在的节点是为了通知当前集群中的所有节点加入了新的节点。:Redis会把每一个节点映射到0-16383个插槽上。原创 2022-09-02 12:16:14 · 263 阅读 · 0 评论 -
Redis哨兵
•:Sentinel 会不断检查您的master和slave是否按预期工作•:如果master故障,Sentinel会将一个slave提升为master。当故障实例恢复后也以新的master为主•:Sentinel充当Redis客户端的服务发现来源,当集群发生故障转移时,会将最新信息推送给Redis的客户端Sentinel基于心跳机制监测服务状态,每隔1秒向集群的每个实例发送ping命令:主观下线:如果某sentinel节点发现某实例未在规定时间响应,则认为该实例。原创 2022-09-02 11:14:53 · 160 阅读 · 0 评论 -
Redis主从集群
偏移量,随着记录在repl_backlog的数据增多而逐渐增大。slave完成同步时也会记录当前同步的offset如果slave的offset小于master的offset,说明slave数据落后于master,需要更新。修改redis-6.2.4/redis.conf文件,将其中的持久化模式改为默认的RDB模式,AOF保持关闭状态。要在同一台虚拟机开启3个实例,必须准备三份不同的配置文件和目录,配置文件所在目录也就是工作目录。:是数据集的标记,id一致则说明是统一数据集。原创 2022-09-02 10:44:09 · 432 阅读 · 0 评论 -
Redis 持久化
③关于fork在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,Linux中引入了“写时复制技术”,一般情况父进程和子进程会共用同一段物理内存,只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。④RDB保存的文件可以在redis.conf中配置文件名称,默认为dump.rdb⑤RDB文件的保存路径默认为Redis启动时命令行所在的目录下,也可以修改(dir ./)⑥RDB的保存策略。原创 2024-01-14 20:57:54 · 925 阅读 · 0 评论 -
Redis事务
Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断Redis事务的主要作用就是串联多个命令防止别的命令插队。原创 2024-01-14 19:54:03 · 825 阅读 · 0 评论 -
Redis五大数据类型以及相关操作
1)Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。2)Redis的Set是string类型的无序集合。它底层其实是一个value为null的hash表,所以添加,删除,查找的复杂度都是O(1)。3)它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。原创 2024-01-13 21:40:53 · 579 阅读 · 0 评论 -
Jedis与SpringDataRedis的配置及使用
Spring Data Redis 中提供了一个高度封装的类:RedisTemplate,针对jedis客户端中大量的api进行了归类封装,将同一类型操作封装为operation接口,具体分类如下。ListOperations:针对list类型的数据操作。HashOperations:针对map类型的数据操作。读取Redis时,手动把读取到的JSON反序列化为对象。ZSetOperations:zset类型的数据操作。也可以直接使用StringRedisTemplate。Jedis的maven坐标。原创 2022-08-10 10:57:44 · 865 阅读 · 0 评论