(P)Redis基本使用(Laravel)

2 篇文章 0 订阅
2 篇文章 0 订阅

更多内容请查看博主github wiki主页 https://github.com/LeroiLiu/wiki

安装

(如果你一直跟随着本教程的话,其实你已经安装了Redis拓展包参考[安装laravel Dingo],可以跳过本安装教程)

如果没有安装,这里提供两个方法供使用:

  1. 参考Laravel 5.7中文文档/Redis

  2. /home/wwwroot/odin.com/odin/composer.jsonrequire添加"predis/predis": "^1.1"然后:composer update

配置

基本使用的可以情况下可用如下配置(/home/wwwroot/odin.com/odin/config/database.php):

'redis' => [
    'client' => 'predis',
    'default' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_DB', 0),
    ],
    'cache' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_CACHE_DB', 1),
    ],
],

当然,这里是基础配置,如果在.env中定义了变量,就要在.env中修改配置:

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

当然,更高级的使用,就请参考官方文档吧,这里只提供一个可以快速入门的通路。

使用测试

/**
 * @Author: leroi
 * @Date:   2019-01-08 13:51:49
 * @Last Modified by:   leroi
 * @Last Modified time: 2019-01-09 17:17:27
 */
namespace App\Http\Controllers\api\lora;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Redis;
class TestController extends Controller
{
	public function index(){
		Redis::set('name', 'Leroi');
		$name = Redis::get('name');
		var_dump($name);
	}
}

//结果:string(6) "Leroi"

好了,接下来我们来测试试用一下Predis的基本方法吧!!

常用方法

操作哈希

//设置值
Redis::command('hset', ['table1', 'use1', 'token1']);
//redis读取哈希
Redis::command('hget', ['table1', 'use1']);
//检测是否存在key
Redis::command('hexists', ['table1', 'use2']);
//设置时间限制
Redis::expire('table1',5);
//laravel 发布订阅
Redis::command('publish', ['key', json_encode(['foo' => 'bar'])]);
Redis::subscribe(['test-channel'], function($message) {
echo $message;
});

操作字符串

//设置指定 key 的值
Redis::SET('name','Leroi');
//获取指定key的值
$name = Redis::GET('name'); //输出Leroi
//返回 key 所储存的字符串值的长度
Redis::STRLEN('name');
//将 key 中储存的数字值增一
Redis::INCR('number');
//将 key 中储存的数字值减一
Redis::DECR('number');

操作列表

//将一个值或多个值插入到列表头部(在列表左侧插入)
Redis::LPUSH('testList','list_left');
//在列表中添加一个值或多个值(在列表右侧插入)
Redis::RPUSH('testList','list_right');
//获取列表长度
Redis::LLEN('testList')
//获取列表指定范围内的元素
Redis::LRANGE('testList',0,-1); //获取列表全部元素
Redis::LRANGE('testList',0,1);  //获取索引值0到1的元素
//移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
Redis::BLPOP('testList',10);  //如果没有元素,会阻塞列表10秒钟,BRPOP同此
//通过索引获取列表中的元素(从列表表左侧开始计算,索引从0开始)
Redis::LPUSH('testList',1);
Redis::LPUSH('testList',2);
$two = Redis::LINDEX('testList',0);//输出$two为2
//在列表中某一元素前面或者后面插入新的元素
Redis::LPUSH('testList',1);
Redis::LPUSH('testList',2);
Redis::LINSERT('testList','AFTER',1,3);
$list = Redis::LRANGE('testList',0,-1);//$list 输出为:2 1 3

当然,这里并不可能将所有方法全部列出来,可以参考Redis 命令参考,这里有更为具体和详细的使用方法。

方法返回值可以查看菜鸟教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值