Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

315
Views
Actualizaciones frecuentes sobre laravel de datos en caché

Actualmente estoy almacenando publicaciones en caché usando el almacenamiento en caché incorporado de laravel con redis. sin embargo, tengo un problema al almacenar publicaciones en caché. básicamente tengo una columna llamada puntaje en la tabla de publicaciones que se actualiza cada vez que el usuario vota a favor o en contra y el problema es que si un usuario vota a favor o en contra de una publicación en caché, la columna de puntaje no se actualiza hasta que pasan 10 minutos (esos son los minutos hasta que el caché cambia usando la función integrada Cache::remember de laravel.¿Cuál es la mejor manera de resolver esto?Aquí hay un ejemplo de código de lo que quiero decir

 public function home(Request $request) { //Get posts that have high scores and in the last 7 days.. // $posts = Post::with('user')->orderBy('score','desc')->whereRaw('created_at >= now() - INTERVAL 7 DAY')->paginate(30); $page = $request->has('page') ? $request->query('page') : 1; //$posts = Post::with('user')->orderBy('score','desc')->paginate(50); $posts = Cache::remember('posts' . $page, 10, function(){ return Post::with('user')->orderBy('score','desc')->paginate(1); }); return view('posts.home', compact('posts','page')); }

Todo funciona perfectamente y las publicaciones se almacenan en caché. El problema aparece cuando el usuario vota a favor o en contra. la columna de puntuación no se actualiza

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

TL; DR: no almacene en caché lo que se actualiza con frecuencia (especialmente si ordena junto con la paginación). Vuelva a consultar su base de datos y use índices para el rendimiento.

Sin embargo, si aún desea seguir su enfoque... la score debe actualizarse en la base de datos, pero obtiene los llamados datos stale del caché. Es posible que desee Cache::forget('posts' . $page); cuando actualice el puntaje (recomiendo usar eventos), de modo que esté consultando los datos más actualizados, siempre que se actualice el puntaje.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!