通过Redis值获取健的实现方式(redis通过值获取健)

Redis(Remote Dictionary Server)是一个开源的高性能内存键值对KV(key-value)数据库,在去中心化,高可用性和高性能方面都具有出色的表现。本文主要介绍Redis如何通过key获取value的实现方式。

当用户调用GET命令时,Redis内部程序会将键作为参数,查找给定的键是否在内存Dataset中,可以使用以下代码:

   // 查询数据库是否存在给定的键:
db->dictFind(db->dict, key);

如果给定的键存在,则Redis会返回与键相关联的值,该值可以是字符串、数字或者是嵌套对象:

   // 返回键关联的值
sds val = key->value;

// 返回数字
long long num = key->value;

// 返回嵌套对象
robj *valobj = key->value;

如果在Dataset中没有找到给定的键,程序会继续查询离线数据库(即经过持久化处理的数据),以确定是否存在该键,如果存在,Redis将恢复该键和其关联的值,以及其他相关信息,之后将数据恢复到Dataset中,以供以后使用:

    // 查询持久化离线存储中是否存在给定的键:
rdbLoad(key);

// 恢复键的关联值:
key->value=rdbLoad(val);

// 恢复相关信息:
updateExpireTime(key);

//
// 把数据恢复到Dataset中
db->dictAdd(db->dict, key, val);

Redis通过key获取value的实现过程包括查询Dataset中是否存在给定的key,如果存在则返回与key相关联的值,如果不存在则查询离线数据库,恢复相应数据,然后把数据恢复到Dataset中,以供以后使用。


数据运维技术 » 通过Redis值获取健的实现方式(redis通过值获取健)