Fazer cache de base de dados não é uma boa prática.

Normalmente otimizar suas consultas vc já vai obter desempenho muito bom, a
menos que tenha alta latencia na conexão entre servidores.

Abraço,
Gabriel R. Giannattasio
[email protected]
Tel: (48) 8415 3555


2011/11/23 Marcelo Rodrigo <[email protected]>

> Realmente, na 3.2 não há mais como fazer isso, infelizmente.
> Vou ter de adaptar minha necessidade de uma outra forma.
>
> Obrigado pela ajuda dos colegas.
> Valeu!
>
>
> Atenciosamente,
>
> Marcelo Rodrigo
> http://marcelorodrigo.com
>
>
> Em 23 de novembro de 2011 11:10, felipe moraes <[email protected]>escreveu:
>
> Exato Marcelo, o ORM do Kohana só provê isso através do as_array() como já
>> foi citado algumas vezes aqui
>>
>> $resultado = $ORM->....find_all()->as_array();
>>
>> http://br.php.net/manual/pt_BR/function.serialize.php
>>
>> Cache::instance()->set(...serialize($resultado));
>>
>> Depois recuperar em outro ponto do sistema:
>> Cache::instance()->get(...);
>> foreach($objeto as $o) ...
>>
>> Só vejo um problema .. você está usando Cache da forma errada :D
>>
>> Isso deveria estar sendo feito com Sessão e não com Cache :D Pois o
>> objetivo do Cache é diferente do que deseja.
>>
>> Em 23 de novembro de 2011 10:29, Marcelo Rodrigo 
>> <[email protected]>escreveu:
>>
>>  Obrigado pela ajuda Felipe.
>>>
>>> Mas o cache que eu comentava era um pouco diferente.
>>> O que quero fazer é guardar todo o objeto usando o Kohana_Cache e não o
>>>  cache de queries do ORM.
>>>
>>>
>>> Algo neste sentido:
>>> $objeto = ORM::Factory('tabela')->where(...)->find_all();
>>> Cache::instance()->set(...);
>>>
>>> Depois recuperar em outro ponto do sistema:
>>> Cache::instance()->get(...);
>>> foreach($objeto as $o) ...
>>>
>>>
>>>
>>>
>>> Atenciosamente,
>>>
>>> Marcelo Rodrigo
>>> http://marcelorodrigo.com
>>>
>>>
>>> Em 23 de novembro de 2011 08:46, felipe moraes 
>>> <[email protected]>escreveu:
>>>
>>>
>>>> http://www.google.com.br/search?gcx=c&sourceid=chrome&ie=UTF-8&q=kohana+database+cache
>>>>
>>>> http://kohanaframework.org/3.2/guide/api/ORM
>>>> http://kohanaframework.org/3.2/guide/api/ORM#cached
>>>>
>>>> O link que comentei, onde o samsoir fala pq não é viável ter cache de
>>>> resultado em orm eu não achei novamente [to em outro pc] .. depois eu posto
>>>> .. vou trampar.
>>>>
>>>> a justificativa é +/- essa .. no ORM os dados são muito voláteis, basta
>>>> um valor mudar para o cache ficar inválido .. ORM, como sabe é baseado em
>>>> várias sub consultas a cada execute(). Aí, fica complicado gerenciar esse
>>>> cache.
>>>>
>>>> ORM tem cache, das columas das tabelas, do SQL .. mas pelo que entendi
>>>> não tem cache de resultado. Cache de resultado tem de ser feito pelo
>>>> ->as_array() por que esse resultado é fácil serializar. Aí, você precisa
>>>> gerenciar isso de acordo com os dados de entrada, perfil do usuário, etc.
>>>>
>>>> Se todo o ambiente [usuário, sessão, etc] for igual ao anterior, não
>>>> ocorreu mudanças no banco (insert, update, delete) e o lifetime não venceu,
>>>> mostra o resultado anterior.
>>>>
>>>>
>>>> Em 23 de novembro de 2011 08:27, Marcelo Rodrigo 
>>>> <[email protected]>escreveu:
>>>>
>>>> Felipe,
>>>>> Compartilha o link desta thread que você encontrou tal informação
>>>>>
>>>>>
>>>>> Atenciosamente,
>>>>>
>>>>> Marcelo Rodrigo
>>>>> http://marcelorodrigo.com
>>>>>
>>>>>
>>>>> Em 23 de novembro de 2011 08:10, felipe moraes 
>>>>> <[email protected]>escreveu:
>>>>>
>>>>> Pelo que vi no fórum do kohana .. não tem mais cache pois os dados não
>>>>>> são totalmente carregados ..
>>>>>>
>>>>>> ou vc serializa o ->as_array() .. ou extende o módulo database.
>>>>>>
>>>>>> Em 23 de novembro de 2011 07:58, felipe moraes 
>>>>>> <[email protected]>escreveu:
>>>>>>
>>>>>> foreach .. cria array .. e serializa com comando do php?
>>>>>>>
>>>>>>> por que é mesmo que o cache de banco não tá funcionando? você
>>>>>>> configurou o cache dele?
>>>>>>>
>>>>>>> Em 22 de novembro de 2011 13:41, Marcelo Rodrigo <
>>>>>>> [email protected]> escreveu:
>>>>>>>
>>>>>>>> Tentei serializar, sem sucesso.
>>>>>>>> A informação que ele serializa, não contempla os valores que foram
>>>>>>>> usados no Query Builder.
>>>>>>>>
>>>>>>>> Se eu der um find_all o objeto se transforma num result e perco a
>>>>>>>> chamada ao ->serialize() por sua vez.
>>>>>>>> To tentando achar outra alternativa aqui.
>>>>>>>>
>>>>>>>>
>>>>>>>> Atenciosamente,
>>>>>>>>
>>>>>>>> Marcelo Rodrigo
>>>>>>>> http://marcelorodrigo.com .. Ccria
>>>>>>>>
>>>>>>>>
>>>>>>>> Em 21 de novembro de 2011 11:28, Beto 
>>>>>>>> <[email protected]>escreveu:
>>>>>>>>
>>>>>>>> Talvez como o GET disse serializando seja possível.
>>>>>>>>>
>>>>>>>>> Caso não vc pode fazer uma 'art-manha' , usa o as_array() e manda
>>>>>>>>> o array pro cache, quando vc precisar do objeto vc pega o array do 
>>>>>>>>> cache e
>>>>>>>>> carrega nas colunas do objeto com o values()  , tbm não sei se 
>>>>>>>>> resolveria o
>>>>>>>>> problema, mas é uma outra forma de ser feito.
>>>>>>>>>
>>>>>>>>> []s
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>>>>>>>>> - - - - - - - -
>>>>>>>>>
>>>>>>>>> Luiz Alberto S. Ribeiro [ Beto ]
>>>>>>>>> @madeinnordeste 
>>>>>>>>> <http://www.twitter.com/madeinnordeste><http://beto.euqueroserummacaco.com>
>>>>>>>>> http://beto.euqueroserummacaco.com
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2011/11/21 Get <[email protected]>
>>>>>>>>>
>>>>>>>>>> Ja tentou serializar?
>>>>>>>>>>
>>>>>>>>>> @rafaelget
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2011/11/21 Marcelo Rodrigo <[email protected]>
>>>>>>>>>>
>>>>>>>>>>> Pessoal,
>>>>>>>>>>>
>>>>>>>>>>> Usando KO 3.2, alguém já tentou gravar em cache um objeto ORM
>>>>>>>>>>> carregado com dados de um ->find_all()?
>>>>>>>>>>> Na declaração do model já tentei setar o $_reload_on_wakeup =
>>>>>>>>>>> false mas mesmo assim continuo com problemas e sempre dou de cara 
>>>>>>>>>>> com ...
>>>>>>>>>>>
>>>>>>>>>>> *ErrorException [ Warning ]: mysql_fetch_object(): supplied
>>>>>>>>>>> argument is not a valid MySQL result resource.*
>>>>>>>>>>>
>>>>>>>>>>> .. assim que eu obtenho os dados do cache e tenho fazer um
>>>>>>>>>>> foreach()
>>>>>>>>>>>
>>>>>>>>>>> Sei que se eu utilizar um ->as_array() após o find_all eu
>>>>>>>>>>> conseguirei armazenar no cache, porque em vez de um Database_Result 
>>>>>>>>>>> eu
>>>>>>>>>>> terei um array.
>>>>>>>>>>> Mas neste caso específico preciso armazenar o model em seu state
>>>>>>>>>>> atual em cache.
>>>>>>>>>>>
>>>>>>>>>>> Alguma idéia?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Atenciosamente,
>>>>>>>>>>>
>>>>>>>>>>> Marcelo Rodrigo
>>>>>>>>>>> http://marcelorodrigo.com
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo
>>>>>>>>>>> "Kohana Php" dos Grupos do Google.
>>>>>>>>>>> Para postar neste grupo, envie um e-mail para
>>>>>>>>>>> [email protected].
>>>>>>>>>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>>>>>>>>>> [email protected].
>>>>>>>>>>> Para obter mais opções, visite esse grupo em
>>>>>>>>>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  --
>>>>>>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo
>>>>>>>>>> "Kohana Php" dos Grupos do Google.
>>>>>>>>>> Para postar neste grupo, envie um e-mail para
>>>>>>>>>> [email protected].
>>>>>>>>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>>>>>>>>> [email protected].
>>>>>>>>>> Para obter mais opções, visite esse grupo em
>>>>>>>>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo
>>>>>>>>> "Kohana Php" dos Grupos do Google.
>>>>>>>>> Para postar neste grupo, envie um e-mail para
>>>>>>>>> [email protected].
>>>>>>>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>>>>>>>> [email protected].
>>>>>>>>> Para obter mais opções, visite esse grupo em
>>>>>>>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>>>>>>>
>>>>>>>>
>>>>>>>>  --
>>>>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo
>>>>>>>> "Kohana Php" dos Grupos do Google.
>>>>>>>> Para postar neste grupo, envie um e-mail para
>>>>>>>> [email protected].
>>>>>>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>>>>>>> [email protected].
>>>>>>>> Para obter mais opções, visite esse grupo em
>>>>>>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> http://felipebastosweb.com.br
>>>>>>> http://twitter.com/felipebastosweb
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> http://felipebastosweb.com.br
>>>>>> http://twitter.com/felipebastosweb
>>>>>>
>>>>>> --
>>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo
>>>>>> "Kohana Php" dos Grupos do Google.
>>>>>> Para postar neste grupo, envie um e-mail para
>>>>>> [email protected].
>>>>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>>>>> [email protected].
>>>>>> Para obter mais opções, visite esse grupo em
>>>>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>>>>
>>>>>
>>>>>  --
>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>>>>> Php" dos Grupos do Google.
>>>>> Para postar neste grupo, envie um e-mail para
>>>>> [email protected].
>>>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>>>> [email protected].
>>>>> Para obter mais opções, visite esse grupo em
>>>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> http://felipebastosweb.com.br
>>>> http://twitter.com/felipebastosweb
>>>>
>>>> --
>>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>>>> Php" dos Grupos do Google.
>>>> Para postar neste grupo, envie um e-mail para
>>>> [email protected].
>>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>>> [email protected].
>>>> Para obter mais opções, visite esse grupo em
>>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>>
>>>
>>>  --
>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>>> Php" dos Grupos do Google.
>>> Para postar neste grupo, envie um e-mail para
>>> [email protected].
>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>> [email protected].
>>> Para obter mais opções, visite esse grupo em
>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>
>>
>>
>>
>> --
>> http://felipebastosweb.com.br
>> http://twitter.com/felipebastosweb
>>
>> --
>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>> Php" dos Grupos do Google.
>> Para postar neste grupo, envie um e-mail para [email protected]
>> .
>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>> [email protected].
>> Para obter mais opções, visite esse grupo em
>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>
>
>  --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
> Php" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para [email protected].
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> [email protected].
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>

-- 
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos 
Grupos do Google.
Para postar neste grupo, envie um e-mail para [email protected].
Para cancelar a inscrição nesse grupo, envie um e-mail para 
[email protected].
Para obter mais opções, visite esse grupo em 
http://groups.google.com/group/kohana-php?hl=pt-BR.

Responder a