Redis Cache By Xon

Redis Cache By Xon 2.18.1

No permission to download
Doh!

dnf module reset redis
Install latest RPM
Upgrade
Restart

View attachment 315791

That version is still almost a year old, but definitely better than 5.0.3 which was almost 6 years old.

I suggest you also take a look at Valkey for a future upgrade. It is fully open source and currently a drop-in replacement for Redis. The release of Valkey 8.0 (September 2024) also brought the capability of enhanced I/O multi-threading, something that Redis still does not do.



 
Is this a bug with this addon?

PHP:
Server error log

XF\CssRenderException: Error rendering template public:message.less: Operation on an invalid type in public:message.less (on or near line 1) src/XF/CssRenderException.php:89
Generated by: Unknown account Jan 1, 2025 at 2:39 PM

Stack trace
*1*| // Note that this file should never output any CSS directly. It should contain variables and mixins only.
 2 | // Output should go into core.less.
 3 |
 4 | // ################################ VARIABLES ###############################
------------

#0 src/XF/CssRenderer.php(435): XF\CssRenderException::createFromLessException(Object(Less_Exception_Compiler), 'public:message....', '// Note that th...')
#1 src/XF/CssRenderer.php(371): XF\CssRenderer->renderToCss('public:message....', '// Note that th...')
#2 src/XF/CssRenderer.php(279): XF\CssRenderer->renderTemplate('public:message....', NULL)
#3 src/XF/CssRenderer.php(135): XF\CssRenderer->renderTemplates(Array, Array, Array)
#4 src/XF/CssWriter.php(60): XF\CssRenderer->render(Array)
#5 src/addons/SV/RedisCache/XF/CssWriter.php(68): XF\CssWriter->run(Array, 13, 1, '7a0125bdd969b45...')
#6 css.php(32): SV\RedisCache\XF\CssWriter->run(Array, 13, 1, '7a0125bdd969b45...')
#7 {main}

-------------

Previous Less_Exception_Compiler: Operation on an invalid type in anonymous-file-0.less - src/vendor/oyejorge/less.php/lib/Less/Tree/Mixin/Call.php:130
#0 src/vendor/oyejorge/less.php/lib/Less/Tree/Ruleset.php(147): Less_Tree_Mixin_Call->compile(Object(Less_Environment))
#1 src/vendor/oyejorge/less.php/lib/Less/Tree/Ruleset.php(90): Less_Tree_Ruleset->EvalMixinCalls(Object(Less_Tree_Ruleset), Object(Less_Environment), 2)
#2 src/vendor/oyejorge/less.php/lib/Less/Tree/Ruleset.php(95): Less_Tree_Ruleset->compile(Object(Less_Environment))
#3 src/vendor/oyejorge/less.php/lib/Less/Tree/Ruleset.php(95): Less_Tree_Ruleset->compile(Object(Less_Environment))
#4 src/vendor/oyejorge/less.php/lib/Less/Tree/Media.php(64): Less_Tree_Ruleset->compile(Object(Less_Environment))
#5 src/vendor/oyejorge/less.php/lib/Less/Tree/Ruleset.php(95): Less_Tree_Media->compile(Object(Less_Environment))
#6 src/vendor/oyejorge/less.php/lib/Less/Parser.php(181): Less_Tree_Ruleset->compile(Object(Less_Environment))
#7 src/XF/CssRenderer.php(431): Less_Parser->getCss()
#8 src/XF/CssRenderer.php(371): XF\CssRenderer->renderToCss('public:message....', '// Note that th...')
#9 src/XF/CssRenderer.php(279): XF\CssRenderer->renderTemplate('public:message....', NULL)
#10 src/XF/CssRenderer.php(135): XF\CssRenderer->renderTemplates(Array, Array, Array)
#11 src/XF/CssWriter.php(60): XF\CssRenderer->render(Array)
#12 src/addons/SV/RedisCache/XF/CssWriter.php(68): XF\CssWriter->run(Array, 13, 1, '7a0125bdd969b45...')
#13 css.php(32): SV\RedisCache\XF\CssWriter->run(Array, 13, 1, '7a0125bdd969b45...')
#14 {main}

Request state
array(4) {
  ["url"] => string(564) "/css.php?css=public%3Aaloph_op_ribbon_style.less%2Cpublic%3Aaloph_op_ribbon_text_public_controls.less%2Cpublic%3Aattachments.less%2Cpublic%3Abb_code.less%2Cpublic%3Abs_rtt_thread_view.less%2Cpublic%3Alightbox.less%2Cpublic%3Amessage.less%2Cpublic%3Aozzmodz_wti_widget_thread_info.less%2Cpublic%3Apoll.less%2Cpublic%3Artt_thread_presence_users.less%2Cpublic%3Ashare_controls.less%2Cpublic%3Atag.less%2Cpublic%3Awte_widget_default.less%2Cpublic%3Axc_hide_bbcode_bb_code_hide.less%2Cpublic%3Aextra.less&s=13&l=1&d=1729185913&k=7a0125bdd969b4526b590523f5f8782f662b9ca6"
  ["referrer"] => bool(false)
  ["_GET"] => array(5) {
    ["css"] => string(428) "public:aloph_op_ribbon_style.less,public:aloph_op_ribbon_text_public_controls.less,public:attachments.less,public:bb_code.less,public:bs_rtt_thread_view.less,public:lightbox.less,public:message.less,public:ozzmodz_wti_widget_thread_info.less,public:poll.less,public:rtt_thread_presence_users.less,public:share_controls.less,public:tag.less,public:wte_widget_default.less,public:xc_hide_bbcode_bb_code_hide.less,public:extra.less"
    ["s"] => string(2) "13"
    ["l"] => string(1) "1"
    ["d"] => string(10) "1729185913"
    ["k"] => string(40) "7a0125bdd969b4526b590523f5f8782f662b9ca6"
  }
  ["_POST"] => array(0) {
  }
}
 
@Xon litespeed ignores us as licensed users and does not support xenforo. I deleted it and installed the redis plugin, added the codes to src/config.php. I installed the plugin. How do I know if it works efficiently - or rather, how do I know if it works?
 

Attachments

  • Ekran görüntüsü 2025-01-08 175400.webp
    Ekran görüntüsü 2025-01-08 175400.webp
    17.5 KB · Views: 11
@Xon litespeed ignores us as licensed users and does not support xenforo. I deleted it and installed the redis plugin, added the codes to src/config.php. I installed the plugin. How do I know if it works efficiently - or rather, how do I know if it works?
If you want a quick visual view of redis I recommend installing this:
 
@Xon litespeed ignores us as licensed users and does not support xenforo. I deleted it and installed the redis plugin, added the codes to src/config.php. I installed the plugin. How do I know if it works efficiently - or rather, how do I know if it works?
Nonsense. They do not ignore anyone. In fact, I reported a bug that was personally fixed and released within a timely manner. Whilst they do not distribute the addon via their site, they clearly state its supported by staff outside what litespeed offers, for free.
 
Nonsense. They do not ignore anyone. In fact, I reported a bug that was personally fixed and released within a timely manner. Whilst they do not distribute the addon via their site, they clearly state its supported by staff outside what litespeed offers, for free.
I have repeatedly requested through Litespeedtech. I wrote to all their platforms. He said that he was notified to the person dealing with xenforo. So look at wordpress litespeed features, look at xenforo features. Isn't it funny? Measures need to be taken. It's not being taken. I will not use it until it is properly overhauled.
No need for personal polemics.
 
I have repeatedly requested through Litespeedtech. I wrote to all their platforms. He said that he was notified to the person dealing with xenforo. So look at wordpress litespeed features, look at xenforo features. Isn't it funny? Measures need to be taken. It's not being taken. I will not use it until it is properly overhauled.
No need for personal polemics.

You are the worst kind of customer. A free supported item out of hours from staff and still not happy. Having personally used the addon, I've had no issues.
 
You are the worst kind of customer. A free supported item out of hours from staff and still not happy. Having personally used the addon, I've had no issues.
I'm saying that the company should offer it in a more functional way. I'm not criticizing people and I don't expect them to be interested after hours. I'm stuck on whether the company is interested or not. I expect it to be functional and comprehensive like wordpress. There's no need to romanticize it.
 
@Xon
Is this error caused by Redis?
Code:
/src/vendor/oyejorge/less.php/lib/Less/Tree/Call.php on line 76 and exactly 3 expected src/vendor/oyejorge/less.php/lib/Less/Functions.php:84
Generated by: Unknown account Jan 27, 2025 at 9:27 PM
Stack trace
#0 src/vendor/oyejorge/less.php/lib/Less/Tree/Call.php(76): Less_Functions->hsl(Object(Less_Tree_Call))
#1 src/vendor/oyejorge/less.php/lib/Less/Tree/Expression.php(36): Less_Tree_Call->compile(Object(Less_Environment))
#2 src/vendor/oyejorge/less.php/lib/Less/Tree/Value.php(25): Less_Tree_Expression->compile(Object(Less_Environment))
#3 src/vendor/oyejorge/less.php/lib/Less/Tree/Rule.php(76): Less_Tree_Value->compile(Object(Less_Environment))
#4 src/vendor/oyejorge/less.php/lib/Less/Tree/Ruleset.php(95): Less_Tree_Rule->compile(Object(Less_Environment))
#5 src/vendor/oyejorge/less.php/lib/Less/Tree/Ruleset.php(95): Less_Tree_Ruleset->compile(Object(Less_Environment))
#6 src/vendor/oyejorge/less.php/lib/Less/Parser.php(181): Less_Tree_Ruleset->compile(Object(Less_Environment))
#7 src/XF/CssRenderer.php(431): Less_Parser->getCss()
#8 src/XF/CssRenderer.php(371): XF\CssRenderer->renderToCss('public:extra.le...', '// Note that th...')
#9 src/XF/CssRenderer.php(279): XF\CssRenderer->renderTemplate('public:extra.le...', NULL)
#10 src/XF/CssRenderer.php(135): XF\CssRenderer->renderTemplates(Array, Array, Array)
#11 src/XF/CssWriter.php(60): XF\CssRenderer->render(Array)
#12 src/addons/SV/RedisCache/XF/CssWriter.php(68): XF\CssWriter->run(Array, 18, 1, '2d87879e37162e4...')
#13 css.php(32): SV\RedisCache\XF\CssWriter->run(Array, 18, 1, '2d87879e37162e4...')
#14 {main}
Request state
array(4) {
  ["url"] => string(340) "/css.php?css=public%3Aalnb_navigation.less%2Cpublic%3Aattachments.less%2Cpublic%3Abb_code.less%2Cpublic%3Aeditor.less%2Cpublic%3Alightbox.less%2Cpublic%3Amessage.less%2Cpublic%3Anotices.less%2Cpublic%3Ashare_controls.less%2Cpublic%3Astructured_list.less%2Cpublic%3Aextra.less&s=18&l=1&d=1737951210&k=2d87879e37162e4627a684089db11a9f9acda15d"
  ["referrer"] => string(58) "https://nitromater.com/threads/drag-racing-in-japan.49910/"
  ["_GET"] => array(5) {
    ["css"] => string(224) "public:alnb_navigation.less,public:attachments.less,public:bb_code.less,public:editor.less,public:lightbox.less,public:message.less,public:notices.less,public:share_controls.less,public:structured_list.less,public:extra.less"
    ["s"] => string(2) "18"
    ["l"] => string(1) "1"
    ["d"] => string(10) "1737951210"
    ["k"] => string(40) "2d87879e37162e4627a684089db11a9f9acda15d"
  }
  ["_POST"] => array(0) {
  }
}
 
@Xon what is your recommend for key eviction policies? What is the best for XenForo and your add-on?
Per the FAQ;

Q:Make Redis behave like Memcache
A: See Using Redis as an LRU cache, and make sure to set maxmemory!

maxmemory 256mb
maxmemory-policy allkeys-lru

@Xon
Is this error caused by Redis?
Code:
/src/vendor/oyejorge/less.php/lib/Less/Tree/Call.php on line 76 and exactly 3 expected src/vendor/oyejorge/less.php/lib/Less/Functions.php:84
Generated by: Unknown account Jan 27, 2025 at 9:27 PM
Stack trace
#0 src/vendor/oyejorge/less.php/lib/Less/Tree/Call.php(76): Less_Functions->hsl(Object(Less_Tree_Call))
#1 src/vendor/oyejorge/less.php/lib/Less/Tree/Expression.php(36): Less_Tree_Call->compile(Object(Less_Environment))
#2 src/vendor/oyejorge/less.php/lib/Less/Tree/Value.php(25): Less_Tree_Expression->compile(Object(Less_Environment))
#3 src/vendor/oyejorge/less.php/lib/Less/Tree/Rule.php(76): Less_Tree_Value->compile(Object(Less_Environment))
#4 src/vendor/oyejorge/less.php/lib/Less/Tree/Ruleset.php(95): Less_Tree_Rule->compile(Object(Less_Environment))
#5 src/vendor/oyejorge/less.php/lib/Less/Tree/Ruleset.php(95): Less_Tree_Ruleset->compile(Object(Less_Environment))
#6 src/vendor/oyejorge/less.php/lib/Less/Parser.php(181): Less_Tree_Ruleset->compile(Object(Less_Environment))
#7 src/XF/CssRenderer.php(431): Less_Parser->getCss()
#8 src/XF/CssRenderer.php(371): XF\CssRenderer->renderToCss('public:extra.le...', '// Note that th...')
#9 src/XF/CssRenderer.php(279): XF\CssRenderer->renderTemplate('public:extra.le...', NULL)
#10 src/XF/CssRenderer.php(135): XF\CssRenderer->renderTemplates(Array, Array, Array)
#11 src/XF/CssWriter.php(60): XF\CssRenderer->render(Array)
#12 src/addons/SV/RedisCache/XF/CssWriter.php(68): XF\CssWriter->run(Array, 18, 1, '2d87879e37162e4...')
#13 css.php(32): SV\RedisCache\XF\CssWriter->run(Array, 18, 1, '2d87879e37162e4...')
#14 {main}
Request state
array(4) {
  ["url"] => string(340) "/css.php?css=public%3Aalnb_navigation.less%2Cpublic%3Aattachments.less%2Cpublic%3Abb_code.less%2Cpublic%3Aeditor.less%2Cpublic%3Alightbox.less%2Cpublic%3Amessage.less%2Cpublic%3Anotices.less%2Cpublic%3Ashare_controls.less%2Cpublic%3Astructured_list.less%2Cpublic%3Aextra.less&s=18&l=1&d=1737951210&k=2d87879e37162e4627a684089db11a9f9acda15d"
  ["referrer"] => string(58) "https://nitromater.com/threads/drag-racing-in-japan.49910/"
  ["_GET"] => array(5) {
    ["css"] => string(224) "public:alnb_navigation.less,public:attachments.less,public:bb_code.less,public:editor.less,public:lightbox.less,public:message.less,public:notices.less,public:share_controls.less,public:structured_list.less,public:extra.less"
    ["s"] => string(2) "18"
    ["l"] => string(1) "1"
    ["d"] => string(10) "1737951210"
    ["k"] => string(40) "2d87879e37162e4627a684089db11a9f9acda15d"
  }
  ["_POST"] => array(0) {
  }
}
That is unrelated to my add-on, it just adjusts caching somewhat not how the CSS itself is generated
 
Even 64 MB is more than enough.

This is for a forum with 20k+ logged users daily.
100k+ daily unique users, including guests.


1738070074473.webp

It's a different story if you store guest page cache via Redis.
 
Even 64 MB is more than enough.

This is for a forum with 20k+ logged users daily.
100k+ daily unique users, including guests.

It's a different story if you store guest page cache via Redis.
That it is, In busy times I have seen up to 241mb peek.
 
It should work fine with the various redis forks. dragonflydb (redis replacement) might be a bit iffy for some of my add-ons but should work fine with this add-on
I'm just curious. What are you using on your sites if you use Redis?

I'm wondering what kind of "penalty" I'm incurring with my Redis only being at 5.03 and whether I should move to Valkey.
 
Back
Top Bottom