本文介绍: LFU算法是一种用于缓存管理算法,它根据数据项在最近一段时间内被访问频率来确定哪些数据应该缓存删除以腾出空间。LRU的具体做法是将最近最少使用缓存块置换出去,即将最久未被访问缓存块淘汰掉。Redis中Lua脚本执行可以保证并发编程中不可再拆分的这个原子性,但是没有保证数据库ACID中要么都执行要么都回滚的这个原子性。:在Redis中,热key问题指的是某个key被频繁访问,导致该key所在的数据结构增长过大,进而导致Redis性能下降甚至宕机。

Redis中的Lua脚本到底能不能保证原子性?

Redis中Lua脚本执行,可以保证并发编程中不可再拆分的这个原子性,但是没有保证数据库ACID中要么都执行要么都回滚的这个原子性。Lua脚本执行过程命令产生错误,是不会回滚的,后续命令不会执行

数据库中的原子性,确实是一个不可拆分的工作单元,要么都执行,要么都不执行。因为事务可以Commit、也可以Rollback

在并发编程中,我们把一个或者多个操作在 CPU 执行过程中不被中断特性称为原子性。

redis为什么快?

  1. 操作基于内存

  2. IO多路复用

  3. 线程操作:省去多线程时CPU上下文会切换时间

    Redis 单线程指的是网络请求模块使用了一个线程,即一个线程处理所有网络请求,其他模块使用多线程,仍会使用了多个线程

  4. 数据结构

redis为什么设计16384槽

Normal heartbeat packets carry the full configuration of a node, that can be replaced in an idempotent way with the old in order to update an old config. This means they contain the slots configuration for a node, in raw form, that uses 2k of space with16k slots, but would use a prohibitive 8k of space using 65k slots.At the same time it is unlikely that Redis Cluster would scale to more than 1000 mater nodes because of other design tradeoffs.

So 16k was in the right range to ensure enough slots per master with a max of 1000 maters, but a small enough number to propagate the slot configuration as a raw bitmap easily. Note that in small clusters the bitmap would be hard to compress because when N is small the bitmap would have slots/N bits set that is a large percentage of bits set.
  1. 如果槽位为65536,发送心跳信息消息头达8k(65536÷8÷1024=8kb),发送的心跳包过于庞大。所以槽位(16394÷8÷1024=2kb)比较合适。
  2. redis集群节点数量基本不可能超过1000个。
  3. 槽位越小,节点少的情况下,压缩率高

key问题

概念:在Redis中,热key问题指的是某个key被频繁访问,导致该key所在的数据结构增长过大,进而导致Redis性能下降甚至宕机。

对于热key的处理,主要在于事前预测和事中解决。

在事中解决方面,主要可以考虑,热点key拆分、多级缓存、热key备份限流等方案来解决。

LRU、LFU

LRU指的是最近最少使用(Least Recently Used),是一种缓存淘汰策略。在实现缓存时,为了让缓存的命中率更高,我们需要选择合适的缓存淘汰策略。LRU的具体做法是将最近最少使用的缓存块置换出去,即将最久未被访问的缓存块淘汰掉。

LFU是Least Frequently Used的缩写,意为最不经常使用。LFU算法是一种用于缓存管理算法,它根据数据项在最近一段时间内被访问频率来确定哪些数据应该从缓存中删除以腾出空间。当缓存达到容量限制时,LFU算法优先删除被访问次数最少的数据项。与其他缓存替换算法相比,LFU算法可以更加高效地利用缓存空间

Redis怎么保证数据不丢失

  1. 持久化:redis支持AOF和RDB、混合的持久方式,可以保证数据不丢失
  2. 集群:有主从模式哨兵模式cluster集群模式集群来保证应用的可靠性,保证数据不丢失

原文地址:https://blog.csdn.net/qq_26347283/article/details/134668988

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_5041.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注