Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 0 additions & 124 deletions .docs/README.md

This file was deleted.

135 changes: 125 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,30 +18,145 @@
Website 🚀 <a href="https://contributte.org">contributte.org</a> | Contact 👨🏻‍💻 <a href="https://f3l1x.io">f3l1x.io</a> | Twitter 🐦 <a href="https://twitter.com/contributte">@contributte</a>
</p>

## Usage
Redis client integration into Nette framework.

To install the latest version of `contributte/redis` use [Composer](https://getcomposer.org).
## Versions

| State | Version | Branch | Nette | PHP |
|-------------|---------|----------|-------|---------|
| dev | `^0.7` | `master` | 3.0+ | `>=8.2` |
| stable | `^0.6` | `master` | 3.0+ | `>=7.2` |

## Contents

- [Installation](#installation)
- [Configuration](#configuration)
- [Sessions](#sessions)
- [Cache](#cache)
- [Custom serializer](#custom-serializer)
- [ENV variables](#env-variables)
- [Sessions and cache](#sessions-and-cache)

## Installation

```bash
composer require contributte/redis
```

## Documentation
```neon
extensions:
redis: Contributte\Redis\DI\RedisExtension
```

For details on how to use this package, check out our [documentation](.docs).
## Configuration

## Versions
```neon
redis:
# Setup Tracy panel
debug: %debugMode%

| State | Version | Branch | Nette | PHP |
|-------------|---------|----------|-------|---------|
| dev | `^0.7` | `master` | 3.0+ | `>=8.2` |
| stable | `^0.6` | `master` | 3.0+ | `>=7.2` |
# Default client factory
clientFactory: Predis\Client

connection:
default:
uri: tcp://127.0.0.1:6379

# Options passed directly to Predis\Client
# https://github.com/nrk/predis#client-configuration
options: []
```

### Sessions

Setup Nette\Http\Session to store session with Redis

```neon
redis:
connection:
default:
sessions: true

## you can also configure session
sessions:
ttl: 3600 # time in seconds after which is session invalidated
```

### Cache

Replaces Nette\Caching\IStorage in DIC with RedisStorage

```neon
redis:
connection:
default:
storage: true
```

### Custom serializer

To use custom serializer for storage you need to implement `Contributte/Redis/Serializer/Serializer` interface.

After that, register serializer as a service and place it under `redis.serializer` key.

```neon
redis:
serializer: @customSerializer
connection:
default:
storage: true

services:
customSerializer: App\Serializers\YourSerializer
```

This package provides several serializers:

- DefaultSerializer
- IgbinarySerializer
- SnappySerializer

### ENV variables

In the need of passing down ENV variables to the configuration you can use `nette/configurator` and [**dynamic parameters**](https://doc.nette.org/en/3.1/bootstrap#toc-dynamic-parameters).

```php
$configurator->addDynamicParameters([
'env' => getenv(),
]);
```

```neon
redis:
connection:
default:
uri: %env.REDIS_HOST%
```

### Sessions and cache

When using sessions and cache make sure you use **2 different databases**. One for cache and one for sessions. In case you will use only 1 database for both **you will loose sessions when clearing cache.**
This would be preferred config:

```neon
connection:
default:
uri: tcp://127.0.0.1:6379
sessions: false
storage: true
options: ['parameters': ['database': 0]]
session:
uri: tcp://127.0.0.1:6379
sessions: true
storage: false
options: ['parameters': ['database': 1]]
```

## Development

See [how to contribute](https://contributte.org/contributing.html) to this package.

This package is currently maintaining by these authors.
This package is currently maintained by these authors.

<a href="https://github.com/f3l1x">
<img width="80" height="80" src="https://avatars2.githubusercontent.com/u/538058?v=3&s=80">
Expand Down