Yii2 的 redis 应用

在应用的时候需要先对yii2进行扩展安装

如果装有composer直接运行

php composer.phar require --prefer-dist yiisoft/yii2-redis

当然也可以本地安装

下载yii2-redis扩展包(https://github.com/yiisoft/yii2-redis )并解压

将解压后的文件移至vebdor/yiisoft命名为yii2-redis

打开vebdor/yiisoft下的extensions.php

添加如下代码

‘yiisoft/yii2-redis‘ =>
  [‘name‘ => ‘yiisoft/yii2-redis‘,
    ‘version‘ => ‘2.0.5.0‘,
    ‘alias‘ =>
    [‘@yii/redis‘ => $vendorDir . ‘/yiisoft/yii2-redis‘,
    ],
  ],

最后在config文件下的web.php中添加如下配置项(配置文件目录要写对笔者当时就是因为这个搞错了浪费了一上午时间)

‘redis‘ =>[
            ‘class‘ => ‘yii\redis\Connection‘,
            ‘hostname‘ => ‘localhost‘,  //你的redis地址
            ‘port‘ => 6379, //端口
            ‘database‘ => 0,
        ]

接下来就可以进行对redis的操作了

以下是几个简单的小实例

1)设置键值

$source = Yii::$app->redis->set(‘var1‘,‘asdasd‘);

当成功时会返回布尔值

$source = Yii::$app->redis->get(‘var1‘);

获取键的值

$source = Yii::$app->redis->del(‘var1‘);

删除键

$var2 = Yii::$app->redis->keys("*");

查看所有的键

2)列表

设置列表

$var1 = Yii::$app->redis->lpush("vari","lisr");

取出列表(一段)

$var3 = Yii::$app->redis->lrange("vari",0,2);

对某列表的某索引的值进行修改

$var33 = Yii::$app->redis->lset(‘vari‘,21,‘2323‘);

3)哈希

适合存储对象

存储hash

$var4 = Yii::$app->redis->hmset(‘mioji‘,‘name‘,‘syc‘,‘age‘,‘24‘);

读取hash

$var5 = Yii::$app->redis->hgetall(‘mioji‘);

4)集合

设置集合

$var6 = Yii::$app->redis->sadd(‘mioji1‘,‘lgc‘,‘lr‘,‘yzb‘,‘syc‘);

获取集合成员数

$var60 = Yii::$app->redis->scard(‘mioji1‘);

获取集合的成员

$var61 = Yii::$app->redis->smembers(‘mioji1‘);

5)有序集合

设置集合中的索引及成员

$var8 = Yii::$app->redis->zadd(‘mioji2‘,‘1‘,‘zf‘,‘2‘,‘ls‘);

返回集合中成员的个数

$var81 = Yii::$app->redis->zcard(‘mioji2‘);

返回指定索引区间内的成员

$var82 = Yii::$app->redis->zrange(‘mioji2‘,0,2);

6)发布订阅

$var7 = Yii::$app->redis->psubscribe(‘redisChat‘);

最后附上一个通用方法

Yii::$app->redis->executeCommand("redis命令名",[‘储存键‘,‘值1‘,‘值2‘...])

Yii::$app->redis->executeCommand(‘SADD‘, [‘key_name‘,value,value,value...]);

参考自:http://www.yiichina.com/tutorial/904

时间: 2024-08-11 09:57:49

Yii2 的 redis 应用的相关文章

秒杀思路: yii2加Redis实现秒杀

整理一些思路 PHP7, yii2加Redis怎么实现秒杀 一个list列表存放秒杀的商品 一个list列表存放秒杀的客户信息 首先读取秒杀商品到商品列表, 然后等待客户秒杀. 每次客户请求, 检查用户列表与商品数量是否大于等于. 如果是就提示已经抢完.下次再来. (这里可以选择方案 是用户下单就减少还是付款再减少) 检查商品的剩余数量是否大于0, 是就减一,并加入客户到列表里面. 否就提示已经抢完.下次再来. (这里可以选择方案 是用户下单就减少还是付款再减少) 每次客户请求, 加入客户到列表

YII2 搭建redis拓展(教程)

安装redis扩展: 1.通过composer进行安装,到项目根目录cmd运行(推荐) php composer.phar require --prefer-dist yiisoft/yii2-redis 或者添加 "yiisoft/yii2-redis": "~2.0.0" 到对应项目的composer.json文件中 2.手动安装 点击下载:yii2.0-redis扩展 把下载的扩展文件放到vendor/yiisoft/下,命名为yii2-redis 修改ven

Yii2 运用 redis 服务

//首先在common/config/main.php 里components里加入如下代码 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => 'localhost', 'port' => 6379, 'database' => 0, ], //然后下载yii2-redis的扩展类库 地址:http://pan.baidu.com/s/1bpengNt //下载完成之后 把yii2-redis文件夹放到

php之yii2简单redis锁限制

yii2框架简单加锁锁定本次任务没执行完之前不允许再请求本次方法,注意这只是简单实现能应对几乎所有并发场景,但是对并发有绝对要求的还是要用队列加异步处理去实现. $key='redis_key_name:'.'订单id或其他本次锁的唯一值'; //判断不是空直接中断本次操作 if(!empty(Yii::$app->redis->get($key))){ //随便你们return或其他友好输出,下面的输出只是个人示例 throw new Exception(-10007, "红包领取

php7+Redis+Windows7安装 (phpstudy)

1.首先去github网站上下载https://github.com/dmajkic/redis/downloads: 2.根据实际情况,将64bit的内容cp到自定义盘符目录,如D:\Redis; 3.打开cmd,cd/d 切换到Redis-server.exe目录,运行redis-server.exe redis.conf: 4.这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了. 切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379

php5.6+Redis+Windows7安装 (phpstudy)

1.首先去github网站上下载https://github.com/dmajkic/redis/downloads: 2.根据实际情况,将64bit的内容cp到自定义盘符目录,如D:\Redis; 3.打开cmd,cd/d 切换到Redis-server.exe目录,运行redis-server.exe redis.conf: 4.这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了. 切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379

php安装redis扩展'checking for igbinary includes... configure: error: Cannot find igbinary.h'解决方法

今天准备给yii2安装redis扩展,先安装了redis服务,然后安装redis php官方扩展,在make的时候提示' checking for igbinary includes... configure: error: Cannot find igbinary.h ' 上stackoverflow搜了下,说是默认安装Igbinary库的路径在/usr/local/php/indclude下面,改成/usr/php/include即可,看了一下服务器上根本没有装这个扩展,只能先装Igbina

yii学习-缓存

一.前置工作 redis服务安装 下载redis客户端(RedisDesktopManager) phpredis扩展安装 下载yii基本应用模板 安装Yii2的redis扩展 1)安装redis服务 wget https://github.com/antirez/redis/archive/3.2.3.tar.gz tar zxf redis-3.2.3.tar.gz cd redis-3.2.3 make && make install 执行初始化脚本: cd utils ./inst

Swoole协程与传统fpm同步模式比较

如果说数组是 PHP 的精髓,数组玩得不6的,根本不能算是会用PHP.那协程对于 Swoole 也是同理,不理解协程去用 Swoole,那就是在瞎用. 首先,Swoole 只能运行在命令行(Cli)模式下,所以我们开发调试都是使用命令行,而不是 php-fpm/apache 等. 在 Swoole 中,我们可以使用`\Swoole\Coroutine::create()`创建协程,或者你也可以使用简写`go()`. 初识 Swoole 协程 go(function(){ go(function(