2016 - 2024

感恩一路有你

redis集群三主三从怎样保证高可用 teledb是基于什么数据库?

浏览量:3584 时间:2023-04-23 09:02:59 作者:采采

teledb是基于什么数据库?

T

学习大数据需要什么基础?

大数据需要开发技能,比如python语言,需要通过编程来抓取数据。当然前端需要Html和javascript,抓取的数据会通过前端进行整合和展示。所以我个人认为学习一门开发语言是很有必要的。

redis和数据库如何保证一致性?

1.不一致的原因是什么?

在使用redis的过程中,我们通常是这样做的,先读取缓存,如果缓存不存在,再读取数据库。

是否先写库再删除缓存;或者先删除缓存再写入库,可能会出现数据不一致的情况。

因为写和读是并发的,所以没有办法保证顺序。如果在写入库之前删除了缓存,另一个线程将会读取它。如果缓存为空,它将从数据库中读取数据并将其写入缓存。此时,缓存是脏的。如果先写库,在删除缓存之前,写库的线程就宕机了,如果不删除缓存,也会出现数据不一致的情况。

如果是redis集群,或者主从模式,写主读从,因为redis复制有一定的时间延迟,也可能导致数据不一致。

2.优化想法

(read操作优先读取redis,如果没有 t exist,访问MySql,将读取的数据写回Redis

(2)如果是写操作,直接写MySql,成功后再写Redis,替换原来的旧数据(可以在MySql定义一个CRUD触发器,触发CRUD操作后将数据写到Redis,或者在Redis解析binlog,再做相应的操作)。

(3)设置合理的超时,即超时后自动删除redis中相应的数据。最坏的情况是在超时期间内存中存在不一致。当然,这种策略考虑到了redis与主从数据库之间耗时的同步,所以最好在第二次删除之前休眠一定时间,比如500毫秒,这无疑增加了耗时的写请求。

数据 数据库 redis 情况 语言

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。