FuelPHP1.3でRedisは注意

FuelPHP1.3でCacheのストレージをredisにするとあまりいいことが無いよってメモ。

詳しく調べてないけど、
fuel_xxxxxxx:index:とかいうkeyにkeyたちがserializeされた状態で保存されてて、
何か操作を行うたびにindexにkeyがあるかチェックするからkeyが増えるに従いトラフィックが増加する。

2012/11/05追記
1.3で1.2のredis使えば良いよ

1.2と1.3の差分
https://github.com/fuel/core/commit/11b6a890cbfcd7b4a5e98529b9d778dc2eacbdb3

もうちょい調査してみよう。

2012/11/12追記

どうやら1.2にはバグがあり正しくヒットしないことがあったが
1.3からは正しく動作するようになったからヒットするようになったらしい。

それにしてもCacheの仕組みがあまり良くないなぁ。
KVSにしてはいけない実装をしている気がする。

2012/11/17追記

なんかごちゃごちゃしてきたので整理しとこう。

Cacheクラスはストレージにfile,apc,memcached,redisが使える。

FuelPHP1.2のCacheクラスにはバグがあって正しくヒットしない。
FuelPHP1.3ではそのバグが修正されていて正しくヒットするようになった。
しかし、Cacheクラスのredisの実装が残念なためヒットはするが、トラフィックが増える。

有効期限を持たない永続的なデータを保存したい時は、
Redisクラスで直接保存したほうが良い。

そのほうがシンプルだし、Cacheクラスを使うとデータがFuelPHPに依存してしまうから、
よろしくないとおもいます。

Cacheクラス→ http://fuelphp.com/docs/classes/cache/usage.html
Redisクラス→http://fuelphp.com/docs/classes/redis.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です