laravel中使用redis首先需要你通过 Composer 安装 predis/predis 包:

composer require predis/predis

配置:

redis的配置文件是: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' => 0,],],

这个自己测试的时候不需要改动,另外一个地方就是**.env**文件

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

使用之前引入:

use IlluminateSupportFacadesRedis;

使用:字符串操作

//set存数据 创建一个 key 并设置value
Redis::set('key','value'); //get命令用于获取指定 key 的值,key不存在,返回null,如果key储存的值不是字符串类型,返回一个错误。
var_dump(Redis::get('key'));//del 删除 成功删除返回 true, 失败则返回 false
Redis::del('key');//mset存储多个 key 对应的 value
$array= array('user1'=>'张三','user2'=>'李四','user3'=>'王五'
);
redis::mset($array); // 存储多个 key 对应的 value// Mget返回所有(一个或多个)给定 key 的值,给定的 key 里面,key 不存在,这个 key 返回特殊值 nilvar_dump(redis::mget (array_keys( $array))); //获取多个key对应的value//Strlen 命令用于获取指定 key 所储存的字符串值的长度。当 key存储不是字符串,返回错误。
var_dump(redis::strlen('key'));//substr 获取第一到第三位字符
var_dump(Redis::substr('key',0,2));//根据键名模糊搜索
var_dump(Redis::keys('use*'));//模糊搜索//获取缓存时间
Redis::ttl('str2');//获取缓存时间//exists检测是否存在某值
Redis::exists ( 'foo' ) ; //true

//队列操作

//rpush/rpushx 有序列表操作,从队列后插入元素;lpush/lpushx 和 rpush/rpushx 的区别是插入到队列的头部,同上,'x'含义是只对已存在的 key 进行操作Redis::rpush('fooList', 'bar1'); // 返回列表长度 1
Redis::lpush('fooList', 'bar2'); // 返回列表长度 2
Redis::rpushx('fooList', 'bar3'); // 返回 3, rpushx只对已存在的队列做添加,否则返回 0//llen返回当前列表长度
var_dump(Redis::llen('fooList')); //返回3//lrange 返回队列中一个区间的元素
var_dump(Redis::lrange ('fooList', 0, 1)); // 返回数组包含第 0 个至第 1 个, 共2个元素
var_dump(Redis::lrange ('fooList', 0, -1)); //返回第0个至倒数第一个, 相当于返回所有元素//lindex 返回指定顺序位置的 list 元素
var_dump(Redis::lindex('fooList', 1)); // 返回'bar1//lset 修改队列中指定位置的value
Redis::lset('fooList', 1, '123'); // 修改位置 1 的元素, 返回 true//lrem 删除队列中左起指定数量的字符
Redis::lrem('fooList', 1, '_') ; // 删除队列中左起(右起使用-1) 1个 字符'_'(若有)//lpop/rpop 类似栈结构地弹出(并删除)最左或最右的一个元素
Redis::lpop('fooList') ; // 返回 'bar0'Redis::rpop('fooList') ; // 返回 'bar2'//ltrim队列修改,保留左边起若干元素,其余删除
Redis::ltrim('fooList', 0, 1) ; // 保留左边起第 0 个至第 1 个元素//rpoplpush 从一个队列中 pop 出元素并 push 到另一个队列Redis::rpush('list1', 'ab0');Redis::rpush('list1', 'ab1');Redis::rpush('list2', 'ab2');Redis::rpush('list2', 'ab3');Redis::rpoplpush('list1', 'list2'); // 结果list1 =>array('ab0'), list2 =>array('ab1','ab2','ab3')Redis::rpoplpush('list2', 'list2'); // 也适用于同一个队列, 把最后一个元素移到头部 list2 =>array('ab3','ab1','ab2')//linsert在队列的中间指定元素前或后插入元素
Redis::linsert('list2', 'before', 'ab1', '123'); //表示在元素 'ab1' 之前插入 '123'Redis::linsert('list2', 'after', 'ab1', '456'); //表示在元素 'ab1' 之后插入 '456'//blpop/brpop 阻塞并等待一个列队不为空时,再pop出最左或最右的一个元素(这个功能在php以外可以说非常好用)
Redis::blpop('list3',?10) ;?//?如果 list3 为空则一直等待,直到不为空时将第一元素弹出,?10?秒后超时

排序操作:

//sort 排序
Redis::rpush('tab', 3);
Redis::rpush('tab', 2);
Redis::rpush('tab', 17);
Redis::sort('tab'); // 返回 array(2,3,17)// 使用参数,可组合使用 array('sort' => 'desc','limit' => array(1, 2))Redis::sort('tab', array('sort' => 'desc')); // 降序排列,返回 array(17,3,2)Redis::sort('tab', array('limit' => array(1, 2))); //返回顺序位置中1的元素2个(这里的2是指个数,而不是位置),返回array(3,17)Redis::sort('tab', array('limit' => array('alpha' => true))); //按首字符排序返回array(17,2,3),因为17的首字符是'1'所以排首位置Redis::sort('tab', array('limit' => array('store' => 'ordered'))); //表示永久性排序,返回元素个数Redis::sort('tab', array('limit' => array('get' => 'pre_*'))); //使用了通配符'*'过滤元素,表示只返回以'pre_'开头的元素

管理操作:

//info 显示服务当状态信息Redis::info();//select 指定要操作的数据库Redis::select(4); // 指定数据库的下标//flushdb 清空当前库Redis::flushdb();//move 移动当库的元素到其它数据库Redis::set('tomove', 'bar');Redis::move('tomove', 4);//slaveof 配置从服务器
Redis::slaveof('127.0.0.1', 80); // 配置 127.0.0.1 端口 80 的服务器为从服务器Redis::slaveof(); // 清除从服务器//同步保存服务器数据到磁盘
Redis::save();//异步保存服务器数据到磁盘
Redis::bgsave ();//返回最后更新磁盘的时间
Redis::lastsave();

set 集合操作 sadd增加set集合元素, 返回true, 重复返回false

Redis::sadd('set1', 'ab');Redis::sadd('set1', 'cd');Redis::sadd('set1', 'ef');//srem 移除指定元素Redis::srem('set1', 'cd'); // 删除'cd'元素
//spop 弹出首元素Redis::spop('set1'); // 返回 'ab'
//smove 移动当前set集合的指定元素到另一个set集合Redis::sadd('set2', '123');Redis::smove('set1', 'set2', 'ab'); // 移动'set1'中的'ab'到'set2', 返回true or false;此时 'set1'集合不存在 'ab' 这个值//scard 返回当前set表元素个数Redis::scard('set2'); // 返回 2
//sismember 判断元素是否属于当前set集合Redis::sismember('set2', '123'); // 返回 true or false
//smembers 返回当前set集合的所有元素Redis::smembers('set2'); // 返回 array('123','ab')
//sinter/sunion/sdiff 返回两个表中元素的交集/并集/补集Redis::sadd('set1', 'ab') ;Redis::sinter('set2', 'set1') ; //返回array('ab')//sinterstore/sunionstore/sdiffstore 将两个表交集/并集/补集元素 copy 到第三个表中Redis::set('foo', 0);Redis::sinterstore('foo', 'set1'); // 等同于将'set1'的内容copy到'foo'中,并将'foo'转为set表Redis::sinterstore('foo', array('set1', 'set2')); // 将'set1'和'set2'中相同的元素 copy 到'foo'表中, 覆盖'foo'原有内容//srandmember 返回表中一个随机元素Redis::srandmember('set1') ;//hset/hget?存取hash表的数据Redis::hset('hash1', 'key1', 'v1'); //将key为'key1' value为'v1'的元素存入hash1表Redis::hset('hash1', 'key2', 'v2');Redis::hget('hash1', 'key1'); //取出表'hash1'中的key 'key1'的值,返回'v1'//hexists?返回hash表中的指定key是否存在Redis::hexists('hash1',?'key1') ;?//true?or?false
//hdel?删除hash表中指定key的元素Redis::hdel('hash1',?'key2') ;?//true?or?false//hlen?返回hash表元素个数Redis::hlen('hash1');?//?返回?1//hsetnx?增加一个元素,但不能重复?
Redis::hsetnx('hash1', 'key1', 'v2') ; // falseRedis::hsetnx('hash1', 'key2', 'v2') ; // true//hmset/hmget?存取多个元素到hash表?Redis::hmset('hash1', array('key3' => 'v3', 'key4' => 'v4'));Redis::hmget('hash1', array('key3', 'key4')); // 返回相应的值 array('v3','v4')//hincrby?对指定key进行累加?Redis::hincrby('hash1', 'key5', 3); // 不存在,则存储并返回 3;存在,即返回 原有值 + 3;Redis::hincrby('hash1', 'key5', 10); // 返回13//hkeys?返回hash表中的所有keyRedis::hkeys('hash1');?//?返回array('key1',?'key2',?'key3',?'key4',?'key5')
//hvals?返回hash表中的所有valueRedis::hvals('hash1');?//?返回 array('v1','v2','v3','v4',13)//hgetall?返回整个hash表元素Redis::hgetall('hash1');?//?返回 array('key1'=>'v1','key2'=>'v2','key3'=>'v3','key4'=>'v4','key5'=>13)

Laravel Redis的使用相关推荐

  1. 关于 Laravel Redis 多个进程同时取队列问题详解

    这篇文章主要给大家介绍了关于 Laravel Redis 多个进程同时取队列问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值,需要的朋友下面来一起学习学习吧. ...

  2. php redis 高并发队列,laravel+Redis简单实现队列通过压力测试的高并发处理

    这篇文章主要介绍了关于laravel+Redis简单实现队列通过压力测试的高并发处理 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 秒杀活动 在一般的网络商城中我们会经常接触到一些高 ...

  3. Laravel+Redis抢购优惠券

    听到"抢购"一词,这就肯定和高并发有关系了.而Redis在高并发方面做得很出色,因此,使用Redis的队列和有序集合就能很好的实现抢购功能. 基本思路:(准备3个队列:优惠券队列. ...

  4. php redis 切换数据库,Laravel Redis数据库切换以及laravel缓存/Session使用不同的Redis数据库 - Laravel学习网...

    Redis Select命令用于切换到指定的数据库,数据库索引号index用数字值指定,以0作为起始索引值. 比如我们要使用db10数据库,只需要使用如下命令即可: redis 127.0.0.1:6 ...

  5. Laravel redis队列不执行

    配置redis队列,以为直接配置env改这个QUEUE_CONNECTION=redis,但是发现实际没有执行队列,如果是datebase或者sync的是没问题,但是redis就有可能出现问题 按照文 ...

  6. Laravel Redis操作大全

    1,普通得set/get操作,set操作,如果键名存在,则会覆盖原有得值 $redis = app("redis.connection");$redis->set('libr ...

  7. laravel redis mysql_Laravel 5.1 Redis 缓存配合 MySQL 数据库实现「用户最后活跃时间」功能...

    前言 今日给 PHPHub 开发了记录用户「最后活跃时间」的小功能,现在趁着热乎将相关实现逻辑写出来,欢迎大家指出不足. 基本思路 通过 Middleware 捕获用户的所有请求: 记录用户的请求时间 ...

  8. laravel redis操作大全 (转载)

    入门级操作 普通 set / get 操作: set操作,如果键名存在,则会覆盖原有的值: $redis = app('redis.connection'); $redis->set('libr ...

  9. laravel redis 操作命令集

    简介 Redis模块负责与Redis数据库交互,并提供Redis的相关API支持: Redis模块提供redis与redis.connection这两个服务:redis.connection服务提供r ...

最新文章

  1. sklearn与pytorch模型的保存与读取
  2. [javascript]JS获取当前时间戳的方法
  3. 使用node.js检查js语法错误
  4. C#之委托的个人理解
  5. 假的!微信上询问商品会被封号 微信朋友圈公布1月份十大谣言
  6. laravel生成php代码,laravel代码生成器
  7. Oracle redo 日志切换时间频率
  8. Android技能树 — View小结
  9. macbook proc 如何设置touch bar 为F键
  10. 005 Java反射面试题
  11. Java回调函数实例
  12. ruby on rails中的分页插件Kaminari
  13. 如何提升数据分析的高级感:反客为主、展示神迹、引经据典、繁花似锦
  14. 抛物线交点式公式_抛物线所有公式,抛物线是什么意思
  15. Xilinx 7系列FPGA收发器架构之硬件设计指导(一)
  16. Android使用keytool-importkeypair生成一个系统签名,只要打包的时候使用该签名,便可以获得系统所有权限
  17. 腾讯区块链的三年与它的打法
  18. 使用git merge --squash,让commit变得优雅
  19. https协议 的工作过程
  20. 智慧门禁APP软件开发市场现状浅析!

热门文章

  1. butter中文意思_butter中文是什么意思
  2. 手机如何将Word文档转换为PDF扫描文件
  3. python是一种什么类型的植物_「蕨类植物」是一种什么类型的植物?
  4. 利用 XML 实现 BASE64 编码和解码
  5. 奥比中光相机的python采集代码
  6. 为什么卸载TeamViewer
  7. chrome使用脚本修改组策略_允许新版本 Chrome 安装第三方网站的脚本以及扩展的方法...
  8. quartus编译报错:Error (176310): Can‘t place multiple pins assigned to pin location Pin_F16 (IOPAD_X34_Y1
  9. 琐记8:恐怖的僵尸进程与温暖的守护进程
  10. Python变量与字符串操作