Redis基础知识科普

2019-08-19  本文已影响0人  Tommy1989

1.简介

Redis 是基于内存的一个Key-Value的数据库,可以持久化,单进程,存储可以有两种方式,全量和增量,存储方式可以有三种:内存、磁盘、Log。另外,Redis支持集群,分布式,主从同步等配置,可以支持每秒十几万的读/写操作,另外Redis也一定程度上支持事务。

2.Redis数据类型

3.常用场景

4.Redis的常见问题/缺点

5.Redis为什么这么快

6.Redis过期策略

redis采用的是定期删除+惰性删除策略

Redis每过100ms去检查,是否有过期的key,有过期的key则删除,另外Redis没100ms去检查key并不是检查所有的key,而是随机抽取进行检查,所以有时候过期的key也不会急事的进行删除,这时候需要补充策略,惰性删除策略。也就是,Redis在每次获取key时会去检查过期时间,如果过期了就删除,如果没有过期才返回。同时,这样也会有一个问题,就是有一些key 永远无法被删除,因为定期删除策略没有扫描到,过期key也没有在被访问过,所以会一直存在内存中,这时候需要内存淘汰机制。
为什么不用定时删除策略?因为定时删除策略会在并发时,耗费大量的CPU资源去做删除的操作,浪费资源。

内存淘汰机制:

1.no-evication(没有驱逐)党内存不足以容纳新数据写入时,新写入数据报错。
2.allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key
3.allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个key
4.volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的key。
5.volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个key
6.volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,有更早过期时间的key优先移除

上一篇 下一篇

猜你喜欢

热点阅读