房产网站建设方案项目书,网站建设新际,网站建设协议 合同,门户网站为什么衰落redis数据库 
redis在初始化服务器时#xff0c;会根据服务器状态的dbnum属性来决定创建多少个数据库#xff0c;dbnum属性的值由服务器配置的database选项决定#xff0c;默认情况下为16#xff0c;redisServer结构如下#xff1a; 
struct redisServer {// ...//一个数组…redis数据库 
redis在初始化服务器时会根据服务器状态的dbnum属性来决定创建多少个数据库dbnum属性的值由服务器配置的database选项决定默认情况下为16redisServer结构如下 
struct redisServer {// ...//一个数组保存着服务器中的所有数据库redisDb *db;int dbnum// ...
};可以通过select命令选择切换到哪个数据库执行CRUD操作 
redisDb 
typedef struct redisDb {// ...//数据库键空间保存着数据库中的所有键值对dict *dict;dict *expires// ...
} redisDb;redisDb主要包含了dict 和 expires两个字典dict字典用于存储键值对expires字典用于存储设置了过期时间的key和其过期时间 
过期删除策略 
针对于redis过期删除问题主要有三种策略 1定时删除在设置键的过期时间的同时创建一个定时器让定时器在键的过期时来临时立即执行键的删除操作。 这种方法会让redis给所有设置了过期时间的key都创建一个定时器对CPU资源耗费极大 2惰性删除放任键过期不管每次获取键时都检查下键是否过期如果过期删除该键 使用惰性删除时如果数据库中有非常多的过期键而这些过期键又恰好没有被访问到的话那么它们永远不会删除无用的垃圾数据占用了大量的内存而服务器不会去自己释放他们 3定期删除每隔一段时间程序就对数据库进行一次检查删除里面的过期键 
redis的过期删除策略 
redis服务器实际使用的是惰性删除和定期删除两种策略