m6web / redis-bundle
bundle sf on top of predis
Installs: 338 628
Dependents: 0
Suggesters: 1
Security: 0
Stars: 8
Watchers: 48
Forks: 9
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=8.0
- b1rdex/predis-compressible: ^1.0
- doctrine/cache: ~1.3
- predis/predis: ^1.1.8
- symfony/cache: ~4.4 || ~5.0 || ~6.0
- symfony/config: ~4.4 || ~5.0 || ~6.0
- symfony/dependency-injection: ~4.4 || ~5.0 || ~6.0
- symfony/http-foundation: ~4.4 || ~5.0 || ~6.0
- symfony/http-kernel: ~4.4 || ~5.0 || ~6.0
- symfony/yaml: ~4.4 || ~5.0 || ~6.0
Requires (Dev)
- atoum/atoum: ^4.0.3
- atoum/stubs: ~2.5
- friendsofphp/php-cs-fixer: ^3.4
- m6web/php-cs-fixer-config: 2.0.*
- m6web/redis-mock: 5.2.*
- psr/cache: ~1.0
- dev-master
- v7.0.1
- v7.0.0
- v6.3.0
- v6.2.0
- v6.1.0
- v6.0.1
- v6.0.0
- v5.0.2
- v5.0.1
- v5.0.0
- v4.0.4
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- 3.x-dev
- v3.0.1
- v3.0.0
- v2.5.0
- v2.4.1
- v2.4.0
- v2.3.0
- v2.2.1
- v2.2.0
- v2.1.0
- v2.0.1
- v2.0.0
- v1.3.0
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-feat/add-del-command-support-on-compress
- dev-feature/retry-on-error
- dev-feature/use-predis-directly
- dev-feature/redis-adapter-guzzle4
- dev-feature/better-timeout-configuration
- dev-fix/ttl-null
This package is auto-updated.
Last update: 2024-10-23 11:36:09 UTC
README
symfony Bundle on top of predis
see predis/predis
features
- semantic configuration
- sf event dispatcher integration
- session handler with redis storage :
M6Web\Bundle\RedisBundle\Redis\RedisSessionHandler
- redis adapter for guzzle cache :
M6Web\Bundle\RedisBundle\Guzzle\RedisCacheAdapter
- dataCollector for sf2 web profiler toolbar
usage
configuration
in config.yml
for a simple cache service :
m6web_redis:
servers:
default:
host: 'localhost'
port: 6379
reconnect: 1
clients:
default:
servers: ["default"] # list of servers to use
prefix: raoul\ # prefix to use
timeout: 2 # timeout in second
read_write_timeout: 2 # read-write timeout in second
for a multiple clients :
m6web_redis:
servers:
first:
host: 'localhost'
port: 6379
reconnect: 1
second:
host: 'xxxxxxxx'
clients:
default:
servers: ["first"] # list of servers to use
prefix: raoul\ # prefix to use
timeout: 2 # timeout in second (float)
read_write_timeout: 1.2 # read write timeout in seconds (float)
compress: true # compress/uncompress data sent/retrieved from redis using gzip, only method SET, SETEX, SETNX, GET, MGET and MSET are supported
sharded:
servers: ["first", "second"]
prefix: raaaoul\
timeout: 1
$this->get('m6web_redis')
send the default client. this->get('m6web_redis.sharded')
the sharded one.
list of options in servers configuration
- host: IP address or hostname of Redis.
- port: CP port on which Redis is listening to. Default value 6379
- database: Database index (see the SELECT command).
- scheme: Connection scheme, such as 'tcp' or 'unix'. Default value tcp
- async_connect: Performs the connect() operation asynchronously. Default value false
- persistent: Leaves the connection open after a GC collection. Default value false
- timeout: Timeout for the connect() operation. Default value 10
- read_write_timeout: Timeout for read() and write() operations
- reconnect: Number of reconnection attempt if a redis command fail, only for tcp
m6web_redis:
servers:
server1:
host: 'localhost'
port: 6379
server configuration via wildcard
m6web_redis:
servers:
server1:
host: 'localhost'
port: 6379
server2:
host: 'xxxxxxxx'
clients:
default:
servers: ["server*"] # all servers matching server*
prefix: raoul\
timeout: 2
event dispatcher
The event M6Web\Bundle\RedisBundle\EventDispatcher\RedisEvent
is automaticly dispatched when a command is executed. Events are fired with the redis.command
label.
You can customize the event name through the client configuration :
m6web_redis: clients: default: eventname: myEventName
session handler
# app/config/config.yml
framework:
session:
# ...
handler_id: session.handler.redis
m6web_redis:
servers:
first:
ip: 'localhost'
port: 6379
clients:
sessions:
servers: ["first"]
prefix: sessions\
timeout: 1
services:
session.handler.redis:
class: M6Web\Bundle\RedisBundle\Redis\RedisSessionHandler
public: false
arguments:
- '@m6web_redis.sessions'
- 3600
dataCollector
Datacollector is available when the Symfony profiler is enabled. The collector allow you to see the following Redis data:
- Command name
- Execution time
- Command arguments
overwriting base class
m6web_redis:
clients:
default:
servers: ["first"]
type: ["db"]
timeout: 0.5
class: \MyCompany\Redis
guzzle redis cache adapter
m6web_redis: clients: guzzlehttp: servers: ["first"] prefix: GuzzleHttp\ class: M6Web\Bundle\RedisBundle\CacheAdapters\M6WebGuzzleHttp timeout: 1
Launch Unit Tests
bin/atoum
Launch php cs
make cs-ci make cs-fix