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进行交互,一次来达到利 ...
随机推荐
- 当前Windows群集心跳阀值设置
一.内容描述: WINDOWS群集之间通过心跳检测(HeartBeat)各个节点是否正常在线,微软称此检测为lookalive,检测通过UDP数据包中封装的RPC信息进行传送.默认情况下为每秒检测一次 ...
- python标准模块(time、datetime及hashlib模块)
一.time,datetime模块 时间相关的操作 import time time.sleep(5) # ==> 停顿多少秒 print(time.time()) # ==> 返回时间戳 ...
- 补发:用Meal Prep+模块化饮食来减肥之实操
自从上次读到仰望尾迹云 老师的模块化饮食的帖子,再了解了一些Meal Prep的内容,结合着做Meal Prep健康餐至今已经快一个半月了.整体感觉还可以,所以在这里讲一下自己的心得体会. 分为三个部 ...
- javascript实用技巧、javascript高级技巧
字号+作者:H5之家 来源:H5之家 2016-10-31 11:00 我要评论( ) 三零网提供网络编程. JavaScript 的技术文章javascript实用技巧.javascript高级技巧 ...
- 百度API城市代码CityCode官方文档
100 拉萨市101 那曲地区102 日喀则地区103 阿里地区104 昆明市105 楚雄彝族自治州106 玉溪市107 红河哈尼族彝族自治州108 普洱市109 西双版纳傣族自治州110 临沧市11 ...
- ubuntu配置ftp服务器
sudo apt-get update sudo apt-get install vsftpd sudo vi /etc/vsftpd.conf listen=YES anonymous_enable ...
- 连载 [ LTS + Top ]
+---[ LTS List ]--->| 1. 每日被自己坑的debugging.. http://www.cnblogs.com/tmzbot/p/5582302.html| 2. [待添加 ...
- jemalloc在linux上从安装到使用
jemalloc在linux上从安装到使用 上次在引导大家安装Redis时提到可能会报错: 发现了redis有用到jemalloc. 首先,jemalloc是干什么的? 我们看看作者自己的介绍: j ...
- WebService -- Java 实现之 CXF ( 添加系统预定义的拦截器)
1. 概述 CXF允许我们在webservice的in/out位置添加拦截器.拦截器有两大分类,一类是系统预定义的:另一类是自定义拦截器. 2. 在server端添加拦截器. JaxWsServerF ...
- 修改jetty的默认端口号
jetty默认端口是8080,修改端口号也很简单,首先进入到jetty服务器安装目录下会看到start.ini配置文件,这里就是jetty启动时加载的配置,其中包括要加载的模块,超时时间配置还有这里的 ...