laravel 操作 redis
laravel框架中本身已经存在相应的redis的配置我们在使用的时候只需要更改配置即可,但是在使用的时候一定要注意命名空间的问题,具体可查看config/app.php下面的aliases数组中具体的路径
1、安装启动Redis及依赖包
如果使用的是Homestead虚拟机作为本地开发环境的话,Homestead已经为我们安装好了Redis并开机启动,如果是使用Windows开发环境的话,可参考 这篇文章 安装启动Redis。
Redis启动之后,还需要在Laravel项目根目录下运行如下命令使用Composer安装 predis 依赖包:
composer require predis/predis 1.0.*
2、配置Redis
前面我们已经提到Redis可以用作主数据库,所以Laravel中Redis的配置信息位于 config/database.php 中:
'redis' => [
'cluster' => false,
'default' => [
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0,
],
],
其中 cluster 选项表示是否在多个Redis节点间进行分片,这里我们本地测试只有一个节点故将其设置为 false 。
default 选项表示默认Redis主机连接,这里Redis和Web服务器共用一台主机,所以 host 为127.0.0.1,Redis默认端口是6379。
此外, default 选项还支持更多连接参数(如果需要的话):
| 参数 |
意义
|
默认值 |
|---|---|---|
| host | 服务器IP地址/主机名称 | 127.0.0.1 |
| port | Redis服务器监听的端口号 | 6379 |
| password | 如果服务器需要认证密码 | 不使用密码 |
|
database
|
连接时选择的数据库索引 |
没有设置索引 |
|
timeout
|
连接到Redis服务器超时时间 | 5秒 |
| read_write_timeout | 通过网络连接进行读写操作的超时时间 |
系统默认(不限制超时时间的话设置为-1) |
另外Redis如果是作为缓存工具,还需要在 config/cache.php 配置 redis 选项:
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
这里的 connection 对应 config/database 中 redis 的默认主机 default 配置。
完成上述配置之后我们就可以在应用代码中使用Redis进行数据存取了。
3、基本使用
由于Laravel默认已经将Redis门面添加到 config/app.php 的 aliases 数组中,所以在代码中可以直接使用该门面进行Redis操作。我们可以在Redis门面上以静态方法的方式调用Redis客户端提供的任何命令( Redis命令大全 ),然后Laravel使用魔术方法将命令传递给Redis服务器并返回获取的结果。
下面我们来看最简单的读取操作:
$key = 'user:name:6';
$user = User::find(6);
if($user){
//将用户名存储到Redis中
Redis::set($key,$user->name);
}
//判断指定键是否存在
if(Redis::exists($key)){
//根据键名获取键值
dd(Redis::get($key));
}
以上是简单的字符串存取,下面我们看一个更复杂的例子,将获取到的数据存放到集合中:
$key = 'posts:title';
$posts = Post::all();
foreach ($posts as $post) {
//将文章标题存放到集合中
Redis::sadd($key,$post->title);
}
//获取集合元素总数(如果指定键不存在返回0)
$nums = Redis::scard($key);
if($nums>0){
//从指定集合中随机获取三个标题
$post_titles = Redis::srandmember($key,3);
dd($post_titles);
}
注:集合与列表的区别在于集合中是不允许重复元素出现的,没错,这就是数学中集合的互异性的体现;有序集合与集合的区别在于有序集合是有序的,这则是数学集合无序性的体现。
laravel 操作 redis的更多相关文章
- laravel操作Redis排序/删除/列表/随机/Hash/集合等方法全解
Song • 3563 次浏览 • 0 个回复 • 2017年10月简介 Redis模块负责与Redis数据库交互,并提供Redis的相关API支持: Redis模块提供redis与redis.con ...
- laravel-- 在laravel操作redis数据库的数据类型(string、哈希、无序集合、list链表、有序集合)
安装redis和连接redis数据库 在controller头部引入 一.基本使用 public function RedisdDbOne() { // 清空Redis数据库 Redis::flush ...
- laravel 使用Redis
1.非框架中使用redis实例? 就是new出redis对象然后连接,然后键值操作即可 <?php $redis = new redis(); $redis->connect('127.0 ...
- Java Spring mvc 操作 Redis 及 Redis 集群
本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 R ...
- Java中使用Jedis操作Redis(转载)
整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...
- (转)Java中使用Jedis操作Redis
转自http://www.cnblogs.com/liuling/p/2014-4-19-04.html 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://file ...
- Python—操作redis
Python操作redis 连接方式:点击 1.String 操作 redis中的String在在内存中按照一个name对应一个value来存储 set() #在Redis中设置值,默认不存在则创建, ...
- php操作redis简单例子
<?php //在PHP里操作Redis //Redis就是php的一个功能类 //创建Redis对象 $redis = new Redis(); //链接redis服务器 $redis -&g ...
- python——操作Redis
在使用django的websocket的时候,发现web请求和其他当前的django进程的内存是不共享的,猜测django的机制可能是每来一个web请求,就开启一个进程去与web进行交互,一次来达到利 ...
随机推荐
- [Computational Advertising] 计算广告学笔记之基础概念
因为工作需要,最近一直在关注计算广告学的内容.作为一个新手,学习计算广告学还是建议先看一下刘鹏老师在师徒网的教程<计算广告学>. 有关刘鹏老师的个人介绍:刘鹏现任360商业产品首席架构师, ...
- linux命令crontab
1.需求 服务端计划任务执行 2.例子 使用crontab命令 参考:http://justjavac.com/other/2013/09/22/linux-scheduled-task-cronta ...
- 移动端web开发的一些知识点
整理一下自己平时移动端web开发中遇到的问题,也参考一下前辈的一些总结 1.最常见的要数1像素边框了 因为Retine屏的分辨率始终是普通屏幕的2倍,1px的边框在dpr=2的retina屏下会显示成 ...
- PYTHON 内置函数
bin() #二进制 r = bin(11) print(r) # 0b1011 oct() #八进制 r = oct(14) print(r) #0o16 int() #十进制 r = int(10 ...
- C++基础知识(5)---类和对象
终于把C++中的基础在前面的几篇博客中总结完了,可能还有一些语法还没有总结到,没关系,以后用到了再查资料就好.类是C++中的一个非常重要的概念,这是区别你使用的C++到底是面向过程还是面向对象的一个重 ...
- python 输出大文本文件
输出固定函数 >>> with open(r'd:\test.txt','r') as f: for i , v in enumerate(f): if i>10: break ...
- nova instance出错:"message": "Proxy error: 502 Read from server failed
执行 $ nova resize instance1 时候出错: {, "details": " File \"/opt/stack/nova/nova/com ...
- java--连接SQL数据库获取验证码
1.导入SQL相关的包: 可以下载:mysql-connector-java-5.1.39-bin.jar 将包导入到工程的方法:project(在工程名上点鼠标右键) -> Build Pat ...
- jdbcTemplate批量插入(添加)
public void addSubscibe(List<PermedipUserSubscribeVo> list) { final List<PermedipUserSubscr ...
- gdb 调试多线程
基本i threads 等操作略过,只谈线程同步.异步控制: 先点到,gdb attach到主线程t1 时,所有线程都会停止,所谓同步异步效果,是指在apply continue到所有线程之后, 再切 ...