laravel中redis的使用

杂项

laravel采用predis进行管理redis

使用composer安装predis

composer require predis/predis 1.0.*

或者在laravel下自带的composer.json中添加

"predis/predis":"1.0.*"

然后执行 composer update --no-scripts

__Notice:__在laravel下安装了redis的扩展.laravel会报错。

Non-static method Redis::set() cannot be called statically, assuming $this from incompatible context

解决方法,在php.ini去掉redis.so

'redis' => [

    'cluster' => false,
//cluster 选项会让 Laravel 的 Redis 客户端在所有 Redis 节点间运行客户端分片(client-side sharding)来创建节点池,并因此拥有大量的可用内存

    'default' => [
        'host'     => '127.0.0.1',
        'port'     => 6379,
        'database' => 0,
    ],

],

字符串存取

1,Redis::set('qq','123456');  //存入到redis字符串中
if(Redis::exits('qq')){
//判断键是否存在
		dd(Redis::get('qq'));
		//根据键名获取键值
}
2,$values = Redis::lrange('names',5,10);
或者通过command命令
$values = Redis::command('lrange',['name',5,10])

管道化命令
当你想要在单次操作中发送多个命令至服务器时则可以使用管道化命令。pipeline 方法接收一个参数:带有 Redis 实例的闭包。你可以发送所有的命令至此 Redis 实例,它们都会在单次操作中运行:
Redis::pipeline(function ($pipe) {
    for ($i = 0; $i < 1000; $i++) {
        $pipe->set("key:$i", $i);
    }
});

dd(Redis::get('key:90'))  //检查是否插入成功

redis发布和订阅

首先需要知道如何自定义一个Artisan.

除了使用本身所提供的命令意外Artisan也可以自定义命令, 若要创建新的命令,你可以使用 make:console Artisan 命令生成一个默认的脚本来帮助你开始编写

php artisan make:console RedisSubscribe

一旦生成这个命令,你应该先填写类的 signature 和 description 这两个属性,它们会被显示在 list 界面中。 命令运行的时候 handle 方法会被调用,因此你可以将程序逻辑放置在这个方法中

在handle中写入逻辑代码
public function handle()
    {
        Redis::subscribe(['test-channel'],function($message){
            echo $message;
        });
    }

 在Routes.php写入路由 

 此时将自定义的命令行注册到kernel.php中

 protected $commands = [

        Commands\RedisSubscribe::class,
    ];

 Route::get('publish', function () {
    // 路由逻辑...
 Redis::publish('test-channel',json_encode(['foo' => 'bar']));
});

在命令行执行 
`php artisan redis:subscribe`

web页面访问路由地址,我们可以发现已经订阅成功并把数据发送到当前命令行下面

如何创建一个自定义的命令行artisan

php artisan make:console SendEmails --command:send

--command指定了要使用的终端名称

转载于:https://my.oschina.net/kakoi/blog/677203

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值