Rails query caching hakkında

Öncelikle herekese iyi forumlar.

Rails ve redis kullanarak bir uygulama yapmaya çalışıyorum ve bu uygulamada veritabanına giden sorguları azaltmaya çalışıyorum. Bu nedenle cache kullanmayı denedim ama internette bulduğum kaynakları denememe rağmen hâlâ sql sorgusu çalışıyor. Bu sorgudan kurtulmak için aşağıdaki gibi bir kod yazdım fakat ne kadar kullanılabilir olduğu hakkında fikrim yok.

def index
    
    #posts_ids = Rails.cache.fetch("posts_ids",expires_in: 60.minutes) do 
    #  Post.all.pluck(:id)
    #end

    #@posts = Post.find(posts_ids)
    
    # result = Post.all# Rails.cache.read("posts")

    # if !result.blank?
    #   render json: result,status: 200,message: "successfully"
    #   return
    # end

    if Rails.cache.read("posts").blank?
      Rails.cache.write("posts",Post.all.to_json,expires_in: 1.minutes)
    end
    @posts = Rails.cache.read("posts")

    render json: JSON.load(@posts)

    # Rails.cache.write("posts",Post.all,expire_in: 60.minutes)
    puts "#" * 40
    puts "index metotdu"
  end

Sizlere sorum bunu bu şekilde yapmalımıyım yoksa başka bir şekilde yaparsam daha kolay olurmu ?
Yardımcı olucak hocalarıma şimdiden teşekkürler :slight_smile:

Merhaba, jbuilder’larla çok çalışmadım ama ön bilgi olarak bunu buldum. jbuilder kullanarak daha kolay bir şekilde cache’leme işlemlerini yönetebiliyorsun gibi görünüyor.

https://github.com/rails/jbuilder#caching

2 Beğeni

@azimcan yardımın için çok teşekkür ederim. Uygulamaya gerekli şekilde uyarladım ve çalıştı :slight_smile:

1 Beğeni