读: 读redis->没有,读mysql->把mysql数据写回redis
写: 写mysql->成功,写redis
关系数据库数据写到kv库,默认从kv库读数据,读不到再去sql读然后同步到kv。非要从kv写入到关系数据库,一般也是用在延迟写入上,写操作先存到kv库里,定时再写入到sql里,哪些key已经写入,哪些还没写入,这个一般是用一个长索引数值控制的
至于缓存,一般都是读缓存(写缓存实现起来很罗嗦,而且也不那么靠谱),与数据库的同步策略需要添加到自己的代码逻辑里。
function get_from_db($condition)
{
$data = get_from_cache($condition);
if (!$data)
{
$data = get_from_db_directly($condition);
set_to_cache($condition, $data);
}
return $data;
}
写: 写mysql->成功,写redis
关系数据库数据写到kv库,默认从kv库读数据,读不到再去sql读然后同步到kv。非要从kv写入到关系数据库,一般也是用在延迟写入上,写操作先存到kv库里,定时再写入到sql里,哪些key已经写入,哪些还没写入,这个一般是用一个长索引数值控制的
至于缓存,一般都是读缓存(写缓存实现起来很罗嗦,而且也不那么靠谱),与数据库的同步策略需要添加到自己的代码逻辑里。
function get_from_db($condition)
{
$data = get_from_cache($condition);
if (!$data)
{
$data = get_from_db_directly($condition);
set_to_cache($condition, $data);
}
return $data;
}