Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/z-song/laredis
A server based on laravel or lumen which can offer redis protocol service.
https://github.com/z-song/laredis
Last synced: 2 months ago
JSON representation
A server based on laravel or lumen which can offer redis protocol service.
- Host: GitHub
- URL: https://github.com/z-song/laredis
- Owner: z-song
- Created: 2016-06-17T10:37:08.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-07-29T07:15:36.000Z (over 8 years ago)
- Last Synced: 2024-05-02T01:09:04.933Z (8 months ago)
- Language: PHP
- Size: 103 KB
- Stars: 10
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# laredis
Laredis can help you to make your `Laravel`/`Lumen` application become a redis server.
[中文文档](/docs/zh.md)
## Installation
```
composer require encore/laredis "dev-master"
```For laravel add `ServerServiceProvider` to `config/app.php`:
```
Encore\Laredis\ServerServiceProvider::class,
```For lumen in `bootstrap/app.php` add
```
$app->register(Encore\Laredis\ServerServiceProvider::class);
```Then run these commands to finish installation:
```
php artisan vendor:publish --tag=laredis
```## Usage
In routes.php add:
```
app('redis.router')->group([
'namespace' => 'App\Http\Controllers',
'middleware' => 'redis.auth'
], function ($router) {$router->command('get', 'users:{id}:{key}', function ($id, $key) {
$user = \App\User::findOrFail($id);
return $user->$key;`
});$router->command('hgetall', 'users:{id}', function ($id) {
$user = \App\User::findOrFail($id);
return $user->toArray();
});
});
```Start the server:
```
php artisan redis-server start
```Or use `-d` option to run service in daemon mode.
Then use any kind of redis client to access the server:
```
$ redis-cli
127.0.0.1:6379> auth 123456
OK127.0.0.1:6379> ping
PONG127.0.0.1:6379> get users:10:name
"Joe Doe"127.0.0.1:6379> hgetall users:10
1) "id"
2) (integer) 10
3) "name"
4) "Joe Doe"
5) "email"
6) "[email protected]"
7) "avatar"
8) (nil)
9) "created_at"
10) "2016-01-27 16:51:49"
11) "updated_at"
12) "2016-06-30 13:50:38"```
## Routing
Use redis command name as method name to route your request.
```
// in routes.php
$router->get('users:{id}:{key}', 'UserController@get');
$router->set('users:{id}:{key}', 'UserController@set');
$router->hgetall('users:{id}', 'UserController@hgetall');
$router->hget('users:{id}', 'UserController@hget');// in UserController.php
use Encore\Laredis\Routing\Controller;
class UserController extends Controller
{
public function get($id, $key)
{
$user = User::findOrFail($id);return $user->$key;
}
public function set($id, $key, $val)
{
$user = User::findOrFail($id);return $user->$key;
}public function hgetall($id)
{
$user = User::findOrFail($id);return $user->toArray();
}
public function hget($id, $field)
{
$user = User::findOrFail($id);return $user->$field;
}
}```
## Supported commands
+ AUTH
+ ECHO
+ PING
+ QUIT
+ SELECT+ TIME
+ GET
+ SET
+ GETSET
+ TRLEN
+ MGET
+ MSET+ DEL
+ EXISTS+ HGET
+ HSET
+ HGETALL
+ HVALS
+ HKEYS
+ HDEL
+ HLEN
+ HMGET
+ HMSET+ LINDEX
+ LRANGE
+ LLEN+ SADD
+ SCARD
+ SDIFF
+ SISMEMBER
+ SMEMBERS
+ SREM
+ SRANDMEMBER+ MULTI
+ EXEC
+ DISCARD# License
[WTFPL](http://www.wtfpl.net/)