Allow the choice of using Memcached or Redis caching
Even more basic than Memcached or Redis, WHMCS needs to include Laravel caching. Since the database is handled using Laravel Eloquent ORM, database caching should already be included. But, WHMCS's implementation of Eloquent removed caching completely. So it's not possible to cache database queries.
All WHMCS has to do is include caching methods used by Eloquent. Eloquent already includes Memcached and Redis integration I believe.
Without proper database caching, we have to make all database queries over and over again for each user. It's not good for perforamance.
Redis or varnish would be a good option for speed improvements.
I also vote for this idea, hope it would become a reality soon.
I like this idea.
Same!! This is a must!
Redis is enough
I'd suggest Redis for larger deployment or APCU for smaller
caching is a must for any application it should be prority.
There should be Memcached caching for WHMCS .
I have a lot of dedicated servers, the product page takes about 4 seconds to load.
I now use an HTML page to combat this and link the server product directly to its configurations page.
It's kinda lame I had to do it this way.
+1 from us. Performance is also a big factor for customer satisfaction and a deciding factor for a purchase.
Any possibility of this happening in WHMCS 7?
There maybe some issues with Memcached if not secured properly given volumetric attacks increased substantially.
But generally speaking, I do vote for the implementation of caching. I would prefer a module approach the enables external service providers such as StackPath.
Our database is 1GB (because of tickets content), and web pages loads within 0.7 sec, i don't see how caching would help in anything in such dynamic CMS
I've been all game for caching until I stepped back and remembered this as well. Like @Johann mentioned, I'm not sure how caching would make sense in WHMCS, because everything is dynamic. It sounds nice, but isn't practical. We also have a 1GB database, and on AWS, everything loads extremely fast. If anything, a focus on database query caching would be nice, but not much needed, as as long as the server/database have the resources, the load is already very fast.
It doesn't matter how big the database is, caching helps reduce the load on the server. This may not seem necessary when you have a bunch of users logged in, and may not matter much when you have server resources to handle more users. But, when you start getting into 1000s of users concurrently using WHMCS and every single page load querying database, you'll start seeing performance issues.
WHMCS is not really dynamic, not many things in WHMCS are updated in real-time or need to be updated every page load. Plus, cache can be invalidated on user action (ex: submitting a form or clicking a button) so data is refreshed. Plus, it should be expired. For example, if your bandwidth graph/data is updated every hour or so, why would you query data from database every page load? That doesn't make sense.
Certain things can be excluded from cache, like shopping cart.
The point is, WHMCS should provide support for object caching so we can use it if needed. WHMCS has an article about high availability that's based on a talk from CEO (i think). Caching and high availability go hand in hand.
Could be interesting to integrate with LiteSpeed Cache too :)
I agree with @v1ktor. Some parts of the app could be cached as they don't change as often (of course, with an expiry time). If we can control which content should be cached and which shouldn't, that could be a relief for a server for some users. Shopping cart and other data that are loaded in real time should never be cached.
It's not an important feature, but very useful one to have at hand.
This is a great idea
Currently, templates are cached to the disk in the templates_c directory. Using Redis would be nice.
What about using opcache caching?
it is the only solution officially supported by PHP developers. The benefits are increased performance and significantly lower memory usage.
However, opcode caching extensions (including OPcache, eAccelerator and APC) aren't compatible with servers configured to use some common types of high-security PHP handlers such as suPHP (the default on WHM / cPanel Linux servers) - I hope there is a way to overcome this problem add add opcache caching support to WHMCS.
WHM/cPanel does support LSAPI which does support Opcache. We use it.
Hi @Eric Caldwell
This is the answer I got from WHMCS support when I asked them about enabling opcache caching:
"WHMCS does not support opcache caching. The presence of this extension has been known to cause unexpected behavior with the WHMCS Software, and therefore we recommend disabling it on systems running WHMCS."
BTW, we switched to memcached from REDIS. Unless you run a multiserver environment, Memcached is more efficient and faster on single server operations and it comes supported out of the box with WHM/cPanel.
Comments have been locked on this page!