redis高级进阶(2)

本篇主要介绍以下内容
1.redis服务器数据库
2.redis对过时键的处理
3.redis持久化策略redis

1.redis服务器数据库

redis服务器若是不指定数据库的具体数据,默认是16个数据库。
客户端链接到redis服务器后,须要对指定的数据库才能操做。数据库

2.Redis对过时key的处理

咱们知道redis的存储是基于内存的,一般一台普通的机器内存是有限的,因此咱们须要按期处理一些不经常使用的数据。这就须要设置一下key的过时时间。服务器

2.1 过时策略

假设某个key过时了,则该key保存到哈希表中,那么应该如何对这些过时key进行处理呢?一般有以下三种策略:
1.定时删除,即设置一个定时器,时常去检测过时key,这样很是占用cpu。
2.惰性删除,每次从redis中取出改key的时候判断下该key是否过时,若是过时了,则删除,返回null。这种作法占用内存。
3.按期删除,即每隔一段时间去删除一下过时键,咱们限制删除的执行时长与频率。这里就须要合理的设置时长。
redis采用的是惰期删除+按期删除策略,能够在redis.conf配置文件中设置。因此说redis中存在过时键到期了,可是没有被删除的状况。内存

2.2 内存淘汰机制

若是惰期删除+按期删除漏掉了不少过时key,则会致使大量的过时key堆积在内存中,最终致使redis服务器内存耗尽,咋办?
咱们能够设置内存最大使用量,当内存使用超出时,会实施"数据淘汰策略"。redis的数据淘汰策略有不少种,自行查看文档,且设置适合本身业务的。文档

3.redis持久化

redis是基于内存的,若是内存坏了,则数据会所有丢失,因此咱们会想办法将数据存储到硬盘中,这就是数据持久化。
redis提供了两种持久化方案
1.RDB(基于快照),即当符合必定条件时redis会自动将内存中的数据进行快照并持久到硬盘中。这是redis默认采用的持久化方案,在redis.conf配置文件中设置。
2.AOF(文件追加),即每执行一条redis更改命令,则redis会自动将该命令写入硬盘中,该种方式通常不用。配置