Code前端首页关于Code前端联系我们

Java研发面试题集:Redis的数据消除策略有哪些?如何进行内存优化?

terry 2年前 (2023-09-26) 阅读数 58 #数据库
Java研发面试题集:Redis 有哪几种数据淘汰策略?如何做内存优化?

7。 Redis

1。 Redis有哪些数据消除策略?

  • noeviction:当达到内存限制并且客户端尝试执行会导致使用更多内存的命令时,返回错误。
  • allkeys-lru:尝试回收最少使用的键(LRU),为新添加的数据腾出空间。
  • volatile-lru:尝试回收最少使用的密钥(LRU),但仅回收过期集中的密钥,以便为新添加的数据腾出空间。
  • allkeys-random:回收随机密钥,为新添加的数据腾出空间。
  • volatile-random:回收随机密钥,为新添加的数据腾出空间,但仅限于过期集中的密钥。
  • volatile-ttl:回收过期集中的密钥,并优先考虑生存时间 (TTL) 较短的密钥,以腾出空间来存储新添加的数据。

2。为什么Redis需要将所有数据存储在内存中?

Redis为了达到最高的读写速度,将所有数据加载到内存中,并将数据异步写入磁盘。

Redis因此具有高速和数据持久化的特点。如果数据不位于内存中,磁盘I/O速度将严重影响redis的性能。

内存越来越便宜的今天,redis会越来越流行。如果设置了最大使用内存,则当现有数据记录数达到内存限制时,无法插入新值。

3。 Redis如何优化内存?

尽可能使用哈希值。哈希表(即哈希表中存储的数字很小)使用的内存非常少,因此您应该尽可能将数据模型抽象到哈希表中。

例如,如果您的 Web 系统中有一个用户对象,请勿为该用户的名字、姓氏、电子邮件和密码设置单独的密钥。相反,您应该将所有用户信息存储在哈希表中。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门