win10 本地 laravel 与redis 交互

默认本地已安装redis 环境  

没安装的话  请先去安装 :http://blog.csdn.net/itmanba/article/details/77525041

安装过后,若没添加path环境变量的话  需要到redis 安装目录路径下执行命令:

.\redis-server.exe redis.windows.conf

启动redis 服务端后,注意启动后不要关闭启动窗口。laravel 配置处理 

在 Laravel 中使用 Redis 之前,需要通过 Composer 安装 predis/predis 包:

composer require predis/predis
配置

应用的 Redis 配置位于配置文件 config/database.php。在这个文件中,可以看到包含被应用使用的 Redis 服务器的 redis 数组:

'redis' => [

    'client' => 'predis',

    'default' => [
        'host' => env('REDIS_HOST', 'localhost'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => 0,
    ],

],

与Redis交互

你可以通过调用 Redis 门面上的方法来与Redis 进行交互,该门面支持动态方法,所以你可以调用任何 Redis 命令,对应命令将会直接传递给 Redis,在本例中,我们通过调用Redis 门面上的 get 方法来调用Redis 上的 GET 命令:

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Redis;
use App\Http\Controllers\Controller;

class UserController extends Controller{
    /**
     * 显示指定用户属性
     *
     * @param  int  $id
     * @return Response
     * @translator laravelacademy.org
     */
    public function showProfile($id)
    {
        $user = Redis::get('user:profile:'.$id);
        return view('user.profile', ['user' => $user]);
    }
}
ok ,简单的 redis 与 laravel 交互已经完成  !enjoy it !!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Laravel 中使用 Redis 实现锁非常简单,可以使用 Redis 提供的 setnx 命令实现。setnx 命令可以将一个 key 的值设为 value,当且仅当该 key 不存在,如果该 key 已经存在,则 setnx 命令不做任何操作。 以下是一个简单的 Redis 锁实现的示例代码: ```php use Illuminate\Support\Facades\Redis; class RedisLock { protected $redis; protected $lockKey; protected $timeout; protected $expire; /** * RedisLock constructor. * * @param string $lockKey 用于获取锁的 key * @param int $timeout 获取锁的超时时间,单位是毫秒 * @param int $expire 锁的过期时间,单位是秒 */ public function __construct($lockKey, $timeout = 3000, $expire = 60) { $this->redis = Redis::connection(); $this->lockKey = $lockKey; $this->timeout = $timeout; $this->expire = $expire; } /** * 获取锁 * * @return bool */ public function acquire() { $timeoutAt = microtime(true) + $this->timeout / 1000; while (microtime(true) < $timeoutAt) { $result = $this->redis->setnx($this->lockKey, time() + $this->expire); if ($result) { return true; } usleep(1000); } return false; } /** * 释放锁 */ public function release() { $lockExpire = $this->redis->get($this->lockKey); if ($lockExpire > time()) { $this->redis->del($this->lockKey); } } } ``` 在使用该类时,可以这样调用: ```php $redisLock = new RedisLock('lock_key', 5000, 60); if ($redisLock->acquire()) { // 获取锁成功 // 执行业务逻辑 $redisLock->release(); } else { // 获取锁失败 // 执行失败处理逻辑 } ``` 在上面的代码中,$lockKey 是用于获取锁的 key,$timeout 是获取锁的超时时间,单位是毫秒,$expire 是锁的过期时间,单位是秒。acquire 方法用于获取锁,如果获取成功则返回 true,否则返回 false。release 方法用于释放锁。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值