Redis sessions, cache & queues
luceos How this could be more efficient than saving and reading these files from disk? They're read-heavy, so they should already be in disk cache in RAM and reading them should be faster than querying redis. Not mention opcache which works out of the box for files saved on disk, but I'm not sure how you managed to make it work if you store these files in redis.
- Edited
Redis version 6.0.5
When the site opened, these articles appeared:
Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in /var/www/sourceturk/flarum/vendor/predis/predis/src/Connection/StreamConnection.php on line 246
Fatal error: Uncaught Laminas\HttpHandlerRunner\Exception\EmitterException: Output has been emitted previously; cannot emit response in /var/www/sourceturk/flarum/vendor/laminas/laminas-httphandlerrunner/src/Exception/EmitterException.php:24 Stack trace: #0 /var/www/sourceturk/flarum/vendor/laminas/laminas-httphandlerrunner/src/Emitter/SapiEmitterTrait.php(40): Laminas\HttpHandlerRunner\Exception\EmitterException::forOutputSent() #1 /var/www/sourceturk/flarum/vendor/laminas/laminas-httphandlerrunner/src/Emitter/SapiEmitter.php(27): Laminas\HttpHandlerRunner\Emitter\SapiEmitter->assertNoPreviousOutput() #2 /var/www/sourceturk/flarum/vendor/laminas/laminas-httphandlerrunner/src/RequestHandlerRunner.php(98): Laminas\HttpHandlerRunner\Emitter\SapiEmitter->emit() #3 /var/www/sourceturk/flarum/vendor/flarum/core/src/Http/Server.php(42): Laminas\HttpHandlerRunner\RequestHandlerRunner->run() #4 /var/www/sourceturk/flarum/public/index.php(26): Flarum\Http\Server->listen() #5 {main} thrown in /var/www/sourceturk/flarum/vendor/laminas/laminas-httphandlerrunner/src/Exception/EmitterException.php on line 24
extend.php
new Bokt\Redis\Extend\EnableRedisCache($redis = [
'host' => '127.0.0.1',
'scheme' => 'tls',
'password' => 'pass',
'port' => 6379,
'database' => 1,
]),
redis.conf
tls-cert-file /etc/redis/server.crt
tls-key-file /etc/redis/server.key
tls-ca-cert-file /etc/redis/rootCA.crt
tls-dh-params-file /etc/redis/dhparam.pem
port 0
tls-port 6379
protected-mode yes
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised systemd
bind 127.0.0.1 ::1
pidfile /var/run/redis/redis.pid
loglevel notice
always-show-logo yes
dir /var/lib/redis
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
requirepass pass
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command DEBUG ""
rename-command SHUTDOWN SHUTDOWN_MENOT
rename-command CONFIG ASC12_CONFIG
storage/logs
[2020-07-14 15:20:10] production.ERROR: Predis\Connection\ConnectionException: Error while switching to encrypted communication [tls://127.0.0.1:6379] in /var/www/sourceturk/flarum/vendor/predis/predis/src/Connection/AbstractConnection.php:155
Stack trace:
#0 /var/www/sourceturk/flarum/vendor/predis/predis/src/Connection/StreamConnection.php(247): Predis\Connection\AbstractConnection->onConnectionError()
#1 /var/www/sourceturk/flarum/vendor/predis/predis/src/Connection/StreamConnection.php(107): Predis\Connection\StreamConnection->tlsStreamInitializer()
#2 /var/www/sourceturk/flarum/vendor/predis/predis/src/Connection/AbstractConnection.php(81): Predis\Connection\StreamConnection->createResource()
#3 /var/www/sourceturk/flarum/vendor/predis/predis/src/Connection/StreamConnection.php(258): Predis\Connection\AbstractConnection->connect()
#4 /var/www/sourceturk/flarum/vendor/predis/predis/src/Connection/AbstractConnection.php(180): Predis\Connection\StreamConnection->connect()
#5 /var/www/sourceturk/flarum/vendor/predis/predis/src/Connection/StreamConnection.php(288): Predis\Connection\AbstractConnection->getResource()
#6 /var/www/sourceturk/flarum/vendor/predis/predis/src/Connection/StreamConnection.php(394): Predis\Connection\StreamConnection->write()
#7 /var/www/sourceturk/flarum/vendor/predis/predis/src/Connection/AbstractConnection.php(110): Predis\Connection\StreamConnection->writeRequest()
#8 /var/www/sourceturk/flarum/vendor/predis/predis/src/Client.php(331): Predis\Connection\AbstractConnection->executeCommand()
#9 /var/www/sourceturk/flarum/vendor/predis/predis/src/Client.php(314): Predis\Client->executeCommand()
#10 /var/www/sourceturk/flarum/vendor/illuminate/redis/Connections/Connection.php(114): Predis\Client->__call()
#11 /var/www/sourceturk/flarum/vendor/illuminate/redis/Connections/Connection.php(214): Illuminate\Redis\Connections\Connection->command()
#12 /var/www/sourceturk/flarum/vendor/illuminate/cache/RedisStore.php(54): Illuminate\Redis\Connections\Connection->__call()
#13 /var/www/sourceturk/flarum/vendor/illuminate/cache/Repository.php(97): Illuminate\Cache\RedisStore->get()
#14 /var/www/sourceturk/flarum/vendor/illuminate/cache/Repository.php(366): Illuminate\Cache\Repository->get()
#15 /var/www/sourceturk/flarum/vendor/fof/terms/src/Repositories/PolicyRepository.php(38): Illuminate\Cache\Repository->rememberForever()
#16 /var/www/sourceturk/flarum/vendor/fof/terms/src/Extenders/ForumPoliciesRelationship.php(33): FoF\Terms\Repositories\PolicyRepository->all()
#17 /var/www/sourceturk/flarum/vendor/illuminate/events/Dispatcher.php(360): FoF\Terms\Extenders\ForumPoliciesRelationship->loadRelationship()
#18 /var/www/sourceturk/flarum/vendor/illuminate/events/Dispatcher.php(209): Illuminate\Events\Dispatcher->Illuminate\Events\{closure}()
#19 /var/www/sourceturk/flarum/vendor/flarum/core/src/Api/Controller/AbstractSerializeController.php(99): Illuminate\Events\Dispatcher->dispatch()
#20 /var/www/sourceturk/flarum/vendor/flarum/core/src/Api/Client.php(72): Flarum\Api\Controller\AbstractSerializeController->handle()
#21 /var/www/sourceturk/flarum/vendor/flarum/core/src/Frontend/Frontend.php(72): Flarum\Api\Client->send()
#22 /var/www/sourceturk/flarum/vendor/flarum/core/src/Frontend/Frontend.php(51): Flarum\Frontend\Frontend->getForumDocument()
#23 /var/www/sourceturk/flarum/vendor/flarum/core/src/Frontend/Controller.php(32): Flarum\Frontend\Frontend->document()
#24 /var/www/sourceturk/flarum/vendor/flarum/core/src/Http/RouteHandlerFactory.php(38): Flarum\Frontend\Controller->handle()
#25 /var/www/sourceturk/flarum/vendor/flarum/core/src/Http/Middleware/DispatchRoute.php(65): Flarum\Http\RouteHandlerFactory->Flarum\Http\{closure}()
#26 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\DispatchRoute->process()
#27 /var/www/sourceturk/flarum/vendor/kilowhat/flarum-ext-audit-free/src/Middlewares/SetLoggerActor.php(28): Laminas\Stratigility\Next->handle()
#28 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Kilowhat\Audit\Middlewares\SetLoggerActor->process()
#29 /var/www/sourceturk/flarum/vendor/fof/terms/src/Middlewares/RegisterMiddleware.php(54): Laminas\Stratigility\Next->handle()
#30 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): FoF\Terms\Middlewares\RegisterMiddleware->process()
#31 /var/www/sourceturk/flarum/vendor/flarum/core/src/Http/Middleware/ShareErrorsFromSession.php(57): Laminas\Stratigility\Next->handle()
#32 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ShareErrorsFromSession->process()
#33 /var/www/sourceturk/flarum/vendor/flarum/core/src/Http/Middleware/SetLocale.php(50): Laminas\Stratigility\Next->handle()
#34 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\SetLocale->process()
#35 /var/www/sourceturk/flarum/vendor/flarum/core/src/Http/Middleware/CheckCsrfToken.php(37): Laminas\Stratigility\Next->handle()
#36 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\CheckCsrfToken->process()
#37 /var/www/sourceturk/flarum/vendor/flarum/core/src/Http/Middleware/AuthenticateWithSession.php(32): Laminas\Stratigility\Next->handle()
#38 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\AuthenticateWithSession->process()
#39 /var/www/sourceturk/flarum/vendor/flarum/core/src/Http/Middleware/RememberFromCookie.php(51): Laminas\Stratigility\Next->handle()
#40 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\RememberFromCookie->process()
#41 /var/www/sourceturk/flarum/vendor/flarum/core/src/Http/Middleware/StartSession.php(61): Laminas\Stratigility\Next->handle()
#42 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\StartSession->process()
#43 /var/www/sourceturk/flarum/vendor/flarum/core/src/Http/Middleware/CollectGarbage.php(46): Laminas\Stratigility\Next->handle()
#44 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\CollectGarbage->process()
#45 /var/www/sourceturk/flarum/vendor/flarum/core/src/Http/Middleware/ParseJsonBody.php(28): Laminas\Stratigility\Next->handle()
#46 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ParseJsonBody->process()
#47 /var/www/sourceturk/flarum/vendor/flarum/core/src/Http/Middleware/HandleErrors.php(57): Laminas\Stratigility\Next->handle()
#48 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\HandleErrors->process()
#49 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(84): Laminas\Stratigility\Next->handle()
#50 /var/www/sourceturk/flarum/vendor/middlewares/request-handler/src/RequestHandler.php(84): Laminas\Stratigility\MiddlewarePipe->process()
#51 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\RequestHandler->process()
#52 /var/www/sourceturk/flarum/vendor/middlewares/base-path-router/src/BasePathRouter.php(97): Laminas\Stratigility\Next->handle()
#53 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\BasePathRouter->process()
#54 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Middleware/OriginalMessages.php(42): Laminas\Stratigility\Next->handle()
#55 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Laminas\Stratigility\Middleware\OriginalMessages->process()
#56 /var/www/sourceturk/flarum/vendor/middlewares/base-path/src/BasePath.php(53): Laminas\Stratigility\Next->handle()
#57 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\BasePath->process()
#58 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(84): Laminas\Stratigility\Next->handle()
#59 /var/www/sourceturk/flarum/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(73): Laminas\Stratigility\MiddlewarePipe->process()
#60 /var/www/sourceturk/flarum/vendor/laminas/laminas-httphandlerrunner/src/RequestHandlerRunner.php(96): Laminas\Stratigility\MiddlewarePipe->handle()
#61 /var/www/sourceturk/flarum/vendor/flarum/core/src/Http/Server.php(42): Laminas\HttpHandlerRunner\RequestHandlerRunner->run()
#62 /var/www/sourceturk/flarum/public/index.php(26): Flarum\Http\Server->listen()
sudo systemctl status redis
● redis.service - Advanced key-value store
Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-07-14 15:19:04 UTC; 35min ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Main PID: 3116 (redis-server)
Tasks: 4 (limit: 4659)
CGroup: /system.slice/redis.service
└─3116 /usr/local/bin/redis-server 127.0.0.1:6379
Jul 14 15:19:03 roots systemd[1]: Starting Advanced key-value store...
Jul 14 15:19:03 roots redis-server[3113]: 3113:C 14 Jul 2020 15:19:03.999 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
Jul 14 15:19:04 roots redis-server[3113]: 3113:C 14 Jul 2020 15:19:04.000 # Redis version=6.0.5, bits=64, commit=00000000, modified=0, pid=3113, just started
Jul 14 15:19:04 roots redis-server[3113]: 3113:C 14 Jul 2020 15:19:04.000 # Configuration loaded
Jul 14 15:19:04 roots systemd[1]: Started Advanced key-value store.
why not store session?
does this support key prefix like memcache to use the same database or you have to select different database to prevent collision?
Hi. Could this be considered beta.14 compatible? At a first glance it should, but it's still targeting beta10
I'd like to point out that bokt/flarum-redis is not compatible with beta 14 or 14.1. We will skip this version and offer compatibility with beta 15 which is expected within a few weeks.
The reason for this is a pull request which makes the necessary implementation much easier: flarum/core2481.