美文网首页
7.redis原理

7.redis原理

作者: _少年不知愁 | 来源:发表于2019-07-20 22:06 被阅读0次

目录

--1.redis过期时间设置原理
--2.redis数据持久化原理
--3.redis内存回收策略

1.redis过期时间设置原理

a.redis可以使用expire命令设置一个键的过期时间,达到约定时间自动删除

EXPIRE <KEY> <TTL> : 将键的生存时间设为 ttl 秒
PEXPIRE <KEY> <TTL> :将键的生存时间设为 ttl 毫秒
EXPIREAT <KEY> <timestamp> :将键的过期时间设为 timestamp 所指定的秒数时间戳
PEXPIREAT <KEY> <timestamp>: 将键的过期时间设为 timestamp 所指定的毫秒数时间戳

b.key还有多久时间被删除
当键不存在时,TTL命令会返回-2,而对于没有给指定键设置过期时间的,通过TTL命令会返回-1

TTL key

c.移除key的过期时间设置
清除了过期时间,则返回1 。 否则返回0(键不存在或者本身就是永久的)

PERSIST key
--针对字符串独有的过期时间设置方式
setex(String key,int seconds,String value)

d.key过期删除的原理
redis使用的过期键值删除策略是:惰性删除加上定期删除,两者配合
(1)惰性删除
key值过期后,此键值不会马上被删除,而是等到下次被使用的时候,才会被检查到过期,此时才能得到删除。缺点明显太浪费内存,对于不常用的,容易造成大量垃圾数据堆积
(2)定时删除
Redis会周期性地随机测试一些key,已过期的key将会被删掉。Redis每秒会进行10次操作,具体的流程:
a 随机测试 20 个带有timeout信息的key;
b 删除其中已经过期的key;
c 如果超过25%的key被删除,则重复执行步骤1;
其实还有一种删除机制:立即删除:设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除,缺点:redis是单线程,如果删除要删除大量的key值,遇上cpu繁忙时,会造成性能低下.

2.redis数据持久化原理

a.rdb


符合一定条件时,Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中
Redis会在以下几种情况下对数据进行快照
(1)根据配置规则进行自动快照
save 900 1
save 300 10
save 60 10000
(2)用户执行SAVE或者GBSAVE命令
(3)执行FLUSHALL命令
(4) 执行复制(replication)时

b.aof

默认情况下Redis没有开启AOF(append only file)方式的持久化,可以通过appendonly参数启用,在redis.conf中
找到 appendonly yes

相关文章

  • 7.redis原理

    目录 --1.redis过期时间设置原理 --2.redis数据持久化原理 --3.redis内存回收策略 1.r...

  • redis面试必问(下)

    接上一章redis面试必问(上) 7.redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 ke...

  • Redis入门到高可用-7.Redis Sentinel

    1.概要 主从复制高可用? 架构说明 安装配置 客户端连接 实现原理 常见开发运维问题 2.主从复制高可用? Re...

  • 7.Redis过期策略底层是如何实现的?

    过期策略 如果我们对key设置了失效时间1分钟,1分钟后,Redis 是如何对这个 key 进行删除的呢? Red...

  • 7.redis作为数据库缓存的区别

    缓存数据库安全性低高持久化不需要需要数据规模热点数据全量数据查询方式k/vks/v回收策略allkeys-lru/...

  • 华与华方法(8)传播第一原理

    传播三大原理: 第一原理:刺激反射原理 第二原理:播传原理 第三原理:信号能量原理。 一、刺激反射原理 所有传播都...

  • 大数据相关

    hadoop原理 spark原理 kafka原理 数据仓库部分 Hadoop原理 MapReduce的原理默认根据...

  • js call apply instanceof 实现原理

    call原理 apply原理 instanceof原理

  • 《影响力》读后感

    全书主要围绕六大原理开展,分别是互惠原理,承诺和一致原理,社会认同原理,喜好原理,权威原理,以及稀缺原理。全文结构...

  • Today面试

    Runloop 底层原理Kvo 底层原理ARC 底层原理 如何实现GCD 底层原理Block 底层原理Aut...

网友评论

      本文标题:7.redis原理

      本文链接:https://www.haomeiwen.com/subject/bgqplctx.html