一、hget与get区别

1、对于大量数据而言 hset/hget 要优于 set/get
h应该是哈希的意思

二、key设置过期时间

小数据量

1、命令行只能设置单个key过期时间

expire(key,seconds)

2、我们可以在创建动态key的时候设置过期时间

jedis.expire(redisKey, seconds);

大数据量

假设 redis 里放了 10w 个 key,都设置了过期时间,你每隔几百毫秒,就检查 10w 个 key,那 redis 基本上就死了,cpu 负载会很高的,消耗在你的检查过期 key 上了。注意,这里可不是每隔 100ms 就遍历所有的设置过期时间的 key,那样就是一场性能上的灾难。实际上 redis 是每隔 100ms 随机抽取一些 key 来检查和删除的。

但是问题是,定期删除可能会导致很多过期 key 到了时间并没有被删除掉,那咋整呢?所以就是惰性删除了。这就是说,在你获取某个 key 的时候,redis 会检查一下 ,这个 key 如果设置了过期时间那么是否过期了?如果过期了此时就会删除,不会给你返回任何东西。

获取 key 的时候,如果此时 key 已经过期,就删除,不会返回任何东西。但是实际上这还是有问题的,如果定期删除漏掉了很多过期 key,然后你也没及时去查,也就没走惰性删除,此时会怎么样?如果大量过期 key 堆积在内存里,导致 redis 内存块耗尽了,咋整?答案是:走内存淘汰机制。
redis异常问题

三、内存淘汰机制

Linux登录redis,输入一下设置命令

config get maxmemory #查看大小,默认0
config set maxmemory 1G #设置1G大小
config set maxmemory-policy allkeys-lru #设置所有key,最少用的驱逐

四、事务控制

redis处理过期数据相关推荐

  1. Redis的过期数据会被立马删除吗?

    Redis的过期数据会被立马删除吗? 答:不会被立马删除.Redis有两种删除过期数据的策略 定期选取部分数据删除 惰性删除 惰性删除: 只有当Redis收到客户端的请求,比如说收到查询一个 key ...

  2. Redis删除过期数据的策略概要

    Redis 如何在删除过期数据时,兼顾性能和内存容量? 1.正常思路 1-1.定时删除 定时扫描所有键值对,发现过期数据立即删除. 优点:内存空间清理及时,有垃圾数据立即清除,确保了Redis的可用容 ...

  3. redis对过期数据的删除策略

      在redis中可以设置键的过期时间,对于过期键的删除策略有三种:定时删除.惰性删除.定期删除 定时删除   定时删除即立即删除,指在设置过期时间时创建一个定时器,在定时器到时间时,立即删除设置的键 ...

  4. 字节一面:Redis主节点的Key已过期,但从节点依然读到过期数据....

    我们知道,大部分的业务场景都是读多写少,为了利用好这个特性,提升Redis集群系统的吞吐能力,通常会采用主从架构.读写分离 如上图所示:其中 Master节点:负责业务的写操作 Slave节点:实时同 ...

  5. Redis主从数据不一致及读取过期数据问题的解决方案

    主从数据不一致问题 因为主从库间的命令复制是异步进行的,所以有可能客户端从从库中读取到的值和主库中的最新值并不一致. 具体来说,在主从库命令传播阶段,主库收到新的写命令后,会发送给从库.但是,主库并不 ...

  6. Redis为什么变慢了?一文讲透如何排查Redis性能问题 | 万字长文

    阅读本文大约需要 30 分钟. Redis 作为优秀的内存数据库,其拥有非常高的性能,单个实例的 OPS 能够达到 10W 左右.但也正因此如此,当我们在使用 Redis 时,如果发现操作延迟变大的情 ...

  7. 面试不怂之redis与缓存大全

    基础篇 问题:什么是redis? Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源.包含多种数据结构.支持网络.基于内存.可选持久性的键值对存储数据库,其具备 ...

  8. Redis为什么变慢了?一文详解Redis性能问题 | 万字长文

    Redis 作为优秀的内存数据库,其拥有非常高的性能,单个实例的 OPS 能够达到 10W 左右.但也正因此如此,当我们在使用 Redis 时,如果发现操作延迟变大的情况,就会与我们的预期不符. 你也 ...

  9. redis详解- 过期删除策略和内存淘汰策略

    设置redis键过期时间 Redis提供了四个命令来设置过期时间(生存时间). ①.EXPIRE <key> <ttl> :表示将键 key 的生存时间设置为 ttl 秒. ② ...

最新文章

  1. 云计算重构渠道商的价值基础,推动渠道商向服务商转型
  2. 开始做事了...............
  3. python详细基础教程-Python基础教程,Python入门教程(非常详细)
  4. 类型转换_异常处理机制
  5. 软件体系结构的风格(转载)
  6. 【全】Docker(二)-在Docker中部署Nginx实现负载均衡视频教程
  7. 手机psp模拟器哪个好_功能强大,手机微信群控系统和云控哪个好?
  8. CentOS安装nginx方法命令教程
  9. Python中if判断语句在只有一个break子句时可以写在一行
  10. 51Nod-1002 数塔取数问题【DP】
  11. 基于Centos搭建Maven 安装与使用
  12. 软件开发需要学习哪些技术?
  13. Python实现Global Reed-Xiaoli(GRX)高光谱目标检测算法
  14. android 各版本对应的API(sdk) Level以及中文名称
  15. 基于华为ENSP模拟器下的多个区域互联,减少LSA的更新量,加快收敛,保障更新安全的OSPF综合练习
  16. MATLAB 人机对弈黑白棋
  17. 如何将html转换成avi,MP4如何转换AVI格式 如何将MP4转换成AVI
  18. ofo的snapchat效应:成功从校园走出去已成功一半
  19. 数据结构与算法(九)—— 二叉树结构及其实现和应用
  20. 矩阵归一化的处理原理和方法

热门文章

  1. 2022A特种设备相关管理(电梯)考试试题及模拟考试
  2. ADF单位根检验三种形式_Eviews之ADF单位根检验
  3. 使用 IDEA 创建 SpringBoot 项目时报错 Error parsing JSON response 解决方案【全】
  4. pageOffice测试版使用配置说明
  5. QUIC详解(转载)
  6. Android简易音乐重构MVVM Java版-新增推荐雷达歌单及重构首页(十三)
  7. 树莓派的linux可以编程吗,解答树莓派上用什么编程
  8. 你使用的网线是哪种?旭东泰细说CAT5E网线和CAT6非屏蔽网线的不同
  9. 人工智能的智能医疗机器人:实现智能辅助、提高医疗效率
  10. 3D人脸识别技术,正在全面入侵我们的日常生活