redis扩容面试题 为什么要用redis,redis有哪些优缺点?redis如何实现扩容?
为什么要用redis,redis有哪些优缺点?redis如何实现扩容?
Redis等键值缓存产品有以下三个特点:Redis支持数据持久化,可以将数据保存在磁盘内存中,重启时可以重新加载使用。Redis不仅支持简单的键值数据,还提供list、set、Zset、hash等数据结构存储。Redis支持数据备份,即主从模式下的数据备份。Redis具有极高的性能。C redis可以读110000次/s,写81000次/s。丰富的数据类型C redis支持二进制大小写的字符串、列表、哈希、集合和有序集合数据类型操作。原子C redis的所有操作都是原子的。同时,redis还支持合并多个操作后的原子执行。富特性C redis还支持发布/订阅、通知、密钥过期等特性。
达到物理网卡上限,突然几十万的请求访问Redis的某个key如何解决?
对于手持4T redis实例组,突发请求的峰值为500000 ops。由于mget的广泛使用,每秒实际请求数百万个密钥。
万兆网络,物理网卡不是瓶颈,CPU不是,设计不好容易成为瓶颈。
大多数用户都是kV。用list和set分享老板的答案似乎是合理的
~]。
不要告诉我们是否使用redis。你必须告诉我们你为什么要使用redis。没有redis的业务怎么了?世界上没有免费的午餐。如果不直接使用头部缓存/NoSQL,可能会带来越来越严重的问题。
单个数据库的最大优点是易于实现事务,并由数据库本身保证。举个简单的例子,要下订单,需要扣除库存并插入订单条目。如果inventory和order都是数据库表条目,那么这个事务是无可挑剔的。如果库存在redis中,订单条目是mysql,通常需要先写redis,成功后再写数据库。如果您写数据库失败,需要回滚redis,如果由于网络或其他原因回滚失败,将再扣减一个存货。不要认为这些事情很容易解决。事务处理的复杂性远远超出您的想象。例如,当您编写mysql时,您在提交时就失去了连接。你无法判断提交是成功还是失败。你的redis是不是在倒退?
因此,当您引入一个新层时,您必须弄清楚您必须使用cache/NoSQL的目的以及您可以接受的一致性模型。否则,你就要出丑了。
有些“上古”程序员一直坚持反对使用redis怎么办?
1. Redis是一个单线程模型。如果内存消耗太大,一般来说,键或值太多。当一台机器上有太多的钥匙时,不利于性能的优化。
2. 如果内存由于值太大而过大,会对性能产生较大影响。读取值时,其他请求处于等待状态。如果该值占用太多内存,则读取速度会很慢。这表示应该将该值拆分为几个
3。redis
的持久性是通过fork实现的。fork虽然采用了写时拷贝,但fork之后仍有成本,内存不足,使用swap时性能会大大降低。
以上都是极端优化的问题。如果你的并发性很小,那没关系。
Redis内存为什么不宜过大?
你好,我是一名互联网行业开发工程师,同时也是高质量vlog领域的创造者。欢迎关注我
!目前互联网缓存中间件大多使用redis、mongodb等NoSQL数据库,解决方案比较成熟。但是为什么要使用关系数据库呢?sentinel和高可用性有几种演进模式,可以从以下几个方面来理解https://m.toutiao.com/is/eejkhKG/
redis扩容面试题 redis cluster动态扩容 redis扩容机制
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。